hooks ใน vue js

ใน Vue.js 3, “Hooks” หมายถึง Composition API ซึ่งเป็นส่วนหนึ่งของการพัฒนา Vue ในรุ่นที่ 3 ซึ่งช่วยให้คุณจัดการโค้ดของคุณได้อย่างเรียบง่ายและยืดหยุ่นมากขึ้น โดย Composition API จะใช้เป็นลำดับความสำคัญในการออกแบบคอมโพเนนต์และการจัดการกับสถานะของคอมโพเนนต์ Vue ของคุณ

นี่คือหน้าที่สำคัญของ Composition API หรือ “Hooks” ใน Vue.js 3:

  1. setup Hook:

    • setup hook เป็นจุดเริ่มต้นสำหรับคอมโพเนนต์และใช้สำหรับการกำหนดค่าและกำหนดคุณสมบัติเบื้องต้น โดยจะรับ props เป็นอาร์กิวเมนต์แรกและ context เป็นอาร์กิวเมนต์ที่สอง.
  2. ref และ reactive:

    • ref และ reactive ใช้ในการสร้างตัวแปรสถานะของคอมโพเนนต์และรับผลตอบรับอัตโนมัติเมื่อข้อมูลถูกเปลี่ยนแปลง. ref ใช้สำหรับตัวแปรเดี่ยวและ reactive ใช้สำหรับอ็อบเจ็กต์ที่มีคุณสมบัติหลายค่า.
  3. computed Hook:

    • computed hook ใช้สำหรับการสร้างคำนวณคุณสมบัติที่ตอบรับต่อการเปลี่ยนแปลงข้อมูลในตัวแปรอื่น ๆ หรือคุณสมบัติคำนวณ.
  4. watch Hook:

    • watch hook ใช้สำหรับการตรวจสอบการเปลี่ยนแปลงในตัวแปรหรือคุณสมบัติและประมวลผลตามต้องการเมื่อมีการเปลี่ยนแปลง.
  5. context และ attrs:

    • context และ attrs เป็นอาร์กิวเมนต์ที่สองและที่สามของ setup hook ซึ่งใช้ในการเข้าถึงข้อมูลเพิ่มเติมเกี่ยวกับคอมโพเนนต์และคุณสมบัติ.
  6. Lifecycle Hooks:

    • Lifecycle hooks เช่น onMounted, onUpdated, และ onUnmounted ยังมีให้ใช้งานเหมือนเดิมเพื่อจัดการกับวัฏจักรของคอมโพเนนต์.

นี่คือตัวอย่างการใช้งาน Composition API ใน Vue.js 3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<template>
<div>
<p>{{ message }}</p>
<

button @click="changeMessage">เปลี่ยนข้อความ</button>
</div>
</template>

<script>
import { ref } from 'vue';

export default {
setup() {
// สร้างตัวแปรสถานะ
const message = ref('สวัสดี, Vue.js!');

// ฟังก์ชันเปลี่ยนข้อความ
const changeMessage = () => {
message.value = 'ข้อความถูกเปลี่ยนแล้ว!';
};

// คืนค่าที่คอมโพเนนต์ต้องการ
return {
message,
changeMessage,
};
},
};
</script>

ในตัวอย่างนี้เราใช้ Composition API (ref) ใน setup hook เพื่อสร้างตัวแปร message และ changeMessage ซึ่งนำมาแสดงในเทมเพลต. Composition API ช่วยให้โค้ดของคุณมีโครงสร้างและอ่านเข้าใจได้ง่ายมากขึ้นเมื่อโปรเจกต์มีขนาดใหญ่และซับซ้อนมากขึ้น.