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) เพื่อเพิ่มความสะดวกในการจัดการข้อมูลในฟอร์ม!