Dev to webs {Coding…}

เรียนรู้การพัฒนาซอฟเวอร์ เพื่อความรู้ที่ยั่งยืน

บทที่ 5: การใช้ Data และ Methods ใน Vue.js

1. Data ใน Vue.js

ใน Vue.js คุณสามารถกำหนดและจัดการข้อมูลที่ใช้ใน Component ได้โดยใช้ data() ซึ่งเป็นฟังก์ชันที่คืนค่าเป็น Object ที่ประกอบด้วยข้อมูลต่าง ๆ

การกำหนด Data

ตัวอย่างการกำหนด Data ใน Component:

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>{{ description }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: 'Welcome to Vue.js',
      description: 'This is a simple example of using data.'
    };
  }
};
</script>

ผลลัพธ์:

Welcome to Vue.js
This is a simple example of using data.

2. Methods ใน Vue.js

Methods คือฟังก์ชันที่ถูกกำหนดใน Component เพื่อใช้สำหรับการประมวลผลหรือจัดการเหตุการณ์ (Event)

การกำหนด Methods

ตัวอย่างการกำหนด Methods:

<template>
  <div>
    <h1>{{ message }}</h1>
    <button @click="updateMessage">Click Me</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue!'
    };
  },
  methods: {
    updateMessage() {
      this.message = 'You clicked the button!';
    }
  }
};
</script>

ผลลัพธ์:

  • เมื่อคลิกปุ่ม ข้อความจะแสดง “You clicked the button!”

3. การใช้งาน Data และ Methods ร่วมกัน

คุณสามารถใช้ Data และ Methods ร่วมกันเพื่อสร้างพฤติกรรมโต้ตอบในแอปพลิเคชันของคุณ

ตัวอย่าง:

<template>
  <div>
    <h1>{{ counter }}</h1>
    <button @click="increment">Increment</button>
    <button @click="decrement">Decrement</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      counter: 0
    };
  },
  methods: {
    increment() {
      this.counter++;
    },
    decrement() {
      this.counter--;
    }
  }
};
</script>

ผลลัพธ์:

  • คลิกปุ่ม “Increment” เพื่อเพิ่มค่า counter
  • คลิกปุ่ม “Decrement” เพื่อลดค่า counter

4. การส่งค่าให้ Methods

คุณสามารถส่งค่าไปยัง Methods ได้โดยเพิ่มพารามิเตอร์ในฟังก์ชัน

ตัวอย่าง:

<template>
  <div>
    <button @click="greet('Alice')">Greet Alice</button>
    <button @click="greet('Bob')">Greet Bob</button>
  </div>
</template>

<script>
export default {
  methods: {
    greet(name) {
      alert(`Hello, ${name}!`);
    }
  }
};
</script>

ผลลัพธ์:

  • เมื่อคลิกปุ่ม จะมีข้อความแจ้งเตือน เช่น “Hello, Alice!” หรือ “Hello, Bob!”

5. การเรียก Methods จาก Template

  • ใช้ v-on หรือ @ เพื่อเรียก Methods จาก Event เช่น click, submit
  • สามารถเรียก Methods โดยตรงใน Template

ตัวอย่าง:

<template>
  <form @submit.prevent="submitForm">
    <input v-model="name" placeholder="Enter your name" />
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      name: ''
    };
  },
  methods: {
    submitForm() {
      alert(`Form submitted with name: ${this.name}`);
    }
  }
};
</script>

ผลลัพธ์:

  • เมื่อกรอกชื่อในฟอร์มและกดปุ่ม “Submit” จะมีข้อความแจ้งเตือนพร้อมชื่อที่กรอก

6. สรุป

ในบทนี้ คุณได้เรียนรู้:

  • การกำหนดและใช้งาน Data ใน Vue.js
  • การสร้าง Methods เพื่อจัดการเหตุการณ์
  • การใช้งาน Data และ Methods ร่วมกัน
  • การส่งค่าให้ Methods และการเรียกใช้ Methods ใน Template

ในบทถัดไป เราจะศึกษาเกี่ยวกับการ Binding ข้อมูลแบบสองทาง (Two-Way Binding) เพื่อเพิ่มความสะดวกในการจัดการข้อมูลในฟอร์ม!