Vue.js คือ ตอนที่ 3 : การจัดการข้อมูล (Data Handling)

  1. คุณสมบัติข้อมูลตอบสนอง (Reactive Data)
  2. คุณสมบัติที่คำนวณได้ (Computed Properties)
  3. Watchers
  4. เมธอด (Methods)
  5. ตัวกรอง (Filters)

ในการทำเว็บ Vue.js และทำแอพ สิ่งสำคัญประการหนึ่งที่กำหนดปฏิสัมพันธ์ระหว่างผู้ใช้และหน้าเว็บคือการจัดการข้อมูล กระบวนการนี้เป็นพื้นฐานของเว็บแอปพลิเคชันแบบโต้ตอบและไดนามิก ใน Vue.js ซึ่งเป็นเฟรมเวิร์ก JavaScript ที่มีประสิทธิภาพสำหรับการสร้างส่วนติดต่อผู้ใช้ การจัดการข้อมูลจะเน้นเป็นพิเศษ ด้วยคุณสมบัติต่างๆ เช่น คุณสมบัติข้อมูลตอบสนอง (Reactive Data) คุณสมบัติการคำนวณ (Computed Properties) Watchers เมธอด (Methods) และตัวกรอง (Filters) Vue.js ช่วยให้นักพัฒนาสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพ ซึ่งจะช่วยยกระดับประสบการณ์ผู้ใช้อย่างมาก

เพื่อใช้ประโยชน์จากพลังของ Vue.js อย่างเต็มที่ในการทำเว็บ Vue.js และทำแอพเราจำเป็นต้องมีความเข้าใจอย่างถ่องแท้ว่า Vue.js จัดการกับข้อมูลอย่างไร ในบทความนี้ เราจะเจาะลึกด้านต่างๆ ของการจัดการข้อมูลใน Vue.js

1. คุณสมบัติข้อมูลตอบสนอง (Reactive Data)

Vue.js มีระบบอันทรงพลังที่ทำให้ข้อมูลมีตอบสนอง (Reactive Data) ซึ่งหมายความว่าการเปลี่ยนแปลงใด ๆ ต่อการอัปเดตทริกเกอร์ข้อมูลใน DOM – โครงสร้างที่แสดงหน้าเว็บ – โดยไม่มีคำแนะนำเพิ่มเติมจากนักพัฒนาซอฟต์แวร์

ใน Vue.js ฟังก์ชัน data จะส่งคืนวัตถุที่คุณสามารถประกาศคุณสมบัติตอบสนอง (Reactive Data) ได้ เมื่อประกาศพร็อพเพอร์ตี้เหล่านี้แล้ว Vue.js จะติดตามและรับรองว่าการเปลี่ยนแปลงใดๆ ในพร็อพเพอร์ตี้เหล่านี้จะอัปเดตส่วนที่เกี่ยวข้องของ DOM

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})

ในตัวอย่างข้างต้น message เป็นคุณสมบัติของข้อมูลเชิงโต้ตอบ หาก message คุณสมบัติมีการเปลี่ยนแปลง ณ จุดใดก็ตาม DOM จะอัปเดตโดยอัตโนมัติเมื่อ message มีการใช้

คุณสมบัติข้อมูลเชิงโต้ตอบทำให้กระบวนการสร้างแอปด้วย Vue.js ง่ายขึ้น เนื่องจากคุณไม่จำเป็นต้องจัดการการอัปเดต DOM ด้วยตนเอง

2. คุณสมบัติที่คำนวณได้ (Computed Properties)

แม้ว่าคุณจะสามารถใช้คุณสมบัติของข้อมูลในนิพจน์ได้โดยตรงในเทมเพลตของคุณ แต่บางครั้งคุณต้องใช้ตรรกะที่ซับซ้อนมากขึ้นกับข้อมูลของคุณ นี่คือที่มาของคุณสมบัติที่คำนวณได้

คุณสมบัติจากการคำนวณทำให้คุณสามารถกำหนดคุณสมบัติที่ใช้เหมือนกับข้อมูล แต่อาจมีตรรกะที่ซับซ้อนอยู่เบื้องหลัง ค่าของคุณสมบัติที่คำนวณจะถูกแคชและอัปเดตเมื่อการขึ้นต่อกันเปลี่ยนแปลงเท่านั้น

ต่อไปนี้คือตัวอย่างของวิธีที่คุณสามารถใช้คุณสมบัติที่คำนวณได้:

new Vue({
  el: '#app',
  data: {
    firstName: 'John',
    lastName: 'Doe'
  },
  computed: {
    fullName: function() {
      return this.firstName + ' ' + this.lastName;
    }
  }
})

ในตัวอย่างนี้ fullName เป็นคุณสมบัติจากการคำนวณที่ขึ้นอยู่กับ firstName และ lastName จะ fullName อัปเดตเมื่อใดก็ตามที่อย่างใดอย่างหนึ่ง firstName หรือ lastName เปลี่ยนแปลง

3. Watchers

บางครั้งคุณจำเป็นต้องดำเนินการแบบอะซิงโครนัสเพื่อตอบสนองต่อการเปลี่ยนแปลงข้อมูล หรือเพื่อตอบสนองต่อการเปลี่ยนแปลงในคุณสมบัติของข้อมูลอื่นๆ Vue.js มีคุณลักษณะที่เรียกว่า “Watchers” สำหรับสถานการณ์เหล่านี้

Watchers เป็นวิธีการที่เปิดเผยมากกว่าการใช้ lifecycle hook ที่อัปเดต ช่วยให้คุณสังเกตและตอบสนองต่อการเปลี่ยนแปลงข้อมูลในแต่ละพร็อพเพอร์ตี้

นี่คือตัวอย่างวิธีใช้ Watchers:

new Vue({
  el: '#app',
  data: {
    searchQuery: ''
  },
  watch: {
    searchQuery: function(newQuery, oldQuery) {
      // Perform some action when searchQuery changes
    }
  }
})

ในกรณีนี้ watch ตัวเลือกจะทำให้แน่ใจว่าฟังก์ชันนิรนามถูกทริกเกอร์ทุกครั้งที่ searchQuery มีการเปลี่ยนแปลง

4. เมธอด (Methods)

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

นี่คือตัวอย่างการกำหนดเมธอด:

new Vue({
  el: '#app',
  data: {
    counter: 0
  },
  methods: {
    incrementCounter: function() {
      this.counter++;
    }
  }
})

ในตัวอย่างนี้ เรากำหนดเมธอด (Methods) ที่เรียก incrementCounter ว่า ทุกครั้งที่เรียกใช้เมธอดนี้ จะเพิ่มค่าที counter ละหนึ่ง คุณสามารถเรียกใช้เมธอดนี้จากภายในเทมเพลตของคุณโดยใช้ คำ สั่ง v-on หรือชวเลข @

<div id="app">
  <p>{{ counter }}</p>
  <button @click="incrementCounter">Increment</button>
</div>

เมธอด (Methods)ใน Vue.js ค่อนข้างหลากหลาย สามารถใช้เพื่อจัดการกับเหตุการณ์ DOM ดังที่แสดงไว้ด้านบน หรือเพื่อคำนวณค่าตามคุณสมบัติข้อมูลของอินสแตนซ์ นอกจากนี้ยังสามารถเรียกใช้ API ตรวจสอบการ ป้อนข้อมูลในแบบฟอร์ม กรองข้อมูล และอื่นๆ อีกมากมาย ทำให้เป็นส่วนสำคัญในกระบวนการสร้างเว็บไซต์ด้วย Vue.js

5. ตัวกรอง (Filters)

ตัวกรองเป็นฟังก์ชันที่มีให้โดย Vue.js เพื่อใช้การจัดรูปแบบข้อความทั่วไป ส่วนใหญ่จะใช้ในสองกรณี: เมื่อคุณต้องการจัดรูปแบบเอาต์พุตโดยไม่เปลี่ยนค่าต้นฉบับ และเมื่อคุณต้องการคงรูปแบบที่สอดคล้องกันในแอปพลิเคชันของคุณ

ตัวกรองจะไม่เปลี่ยนข้อมูลเดิม พวกเขาเปลี่ยนผลลัพธ์เท่านั้น สิ่งนี้ทำให้มีประโยชน์อย่างยิ่งในสถานการณ์ที่คุณต้องการจัดรูปแบบข้อมูลสำหรับส่วนต่อประสานผู้ใช้โดยไม่แก้ไขข้อมูลพื้นฐาน

นี่คือตัวอย่างตัวกรองใน Vue.js:

new Vue({
  el: '#app',
  data: {
    price: 100
  },
  filters: {
    currencyDecimal(value) {
      return value.toFixed(2);
    }
  }
})

ในตัวอย่างนี้currencyDecimalตัวกรองจัดรูปแบบตัวเลขเพื่อเก็บทศนิยมสองตำแหน่ง คุณสามารถใช้ในเทมเพลตได้ดังนี้:

<div id="app">
  <p>{{ price | currencyDecimal }}</p>
</div>

ตัวกรองสามารถเชื่อมโยงกันและแม้กระทั่งใช้อาร์กิวเมนต์ ซึ่งเป็นวิธีที่ยืดหยุ่นในการจัดรูปแบบข้อมูลของคุณ


การจัดการข้อมูลเป็นแกนหลักของเว็บแอปพลิเคชัน และ Vue.js มีเครื่องมือและเทคนิคมากมายเพื่อจัดการข้อมูลอย่างมีประสิทธิภาพ เมื่อเข้าใจคุณสมบัติเหล่านี้ คุณจะสามารถลดความซับซ้อนของกระบวนการทำเว็บ Vue.js และทำแอพได้ อย่างมาก

คุณสมบัติข้อมูลเชิงโต้ตอบทำให้ข้อมูลของคุณเป็นไดนามิก อัปเดตอินเทอร์เฟซผู้ใช้โดยอัตโนมัติเมื่อข้อมูลเปลี่ยนแปลง คุณสมบัติจากการคำนวณช่วยให้คุณใช้ตรรกะที่ซับซ้อนเพื่อรับค่าจากข้อมูลของคุณ ในขณะที่ Watchers จะมอบเมธอด (Methods)ตอบสนองต่อการเปลี่ยนแปลงในข้อมูลของคุณ เมธอดเป็นที่ที่คุณกำหนดฟังก์ชันที่ขับเคลื่อนตรรกะของแอปพลิเคชัน และตัวกรองจะจัดเตรียมวิธีการจัดรูปแบบข้อมูลของคุณสำหรับอินเทอร์เฟซผู้ใช้

การทำความเข้าใจและการใช้เครื่องมือและเทคนิคเหล่านี้อย่างมีประสิทธิภาพจะช่วยเพิ่มความสามารถของคุณอย่างมากในการทำเว็บ Vue.js และทำแอพซึ่งช่วยให้คุณทำเว็บ Vue.js และทำแอพแบบไดนามิก ตอบสนองฉับไว และเป็นมิตรกับผู้ใช้มากขึ้น เป็นที่ชัดเจนว่าการจัดการข้อมูลเป็นส่วนสำคัญของ Vue.js และการเรียนรู้ให้เชี่ยวชาญเป็นสิ่งสำคัญสำหรับการทำเว็บ Vue.js และทำแอพ


Vue.js คืออะไร

Vue.js คือ ตอนที่ 2 : ภาพรวมการทำงาน
Vue.js คือ ตอนที่ 4 : เทมเพลต (Templates)