Vue.js คือ ตอนที่ 4 : เทมเพลต (Templates)

  1. ไวยากรณ์ของเทมเพลต (Template Syntax)
  2. การแก้ไข (Interpolation) และการผูกข้อมูล (Data Binding)
    2.1 การแก้ไข (Interpolation)
    2.2 การเชื่อมโยงข้อมูล (Data Binding)
  3. คำสั่ง (Directives): การสร้างบล็อคของเทมเพลต Vue.js
    3.1 v-if, v-else และ v-else-if
    3.2 v-for
    3.3 v-model
  4. การแสดงผล (Rendering) และการรวบรวม (Compilation) เทมเพลต Vue.js

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

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

1. ไวยากรณ์ของเทมเพลต (Template Syntax)

เทมเพลต Vue.js เขียนด้วย HTML และทำหน้าที่เป็นรากฐานสำหรับองค์ประกอบภาพในแอปของคุณ Vue.js ใช้ไวยากรณ์ง่ายๆ ช่วยให้คุณเขียนและทำความเข้าใจเทมเพลตได้อย่างรวดเร็ว คุณสามารถสร้างเทมเพลต Vue.js โดยใช้โครงสร้างต่อไปนี้:

<template>
  <!-- Your template code goes here -->
</template>

ภายใน<template>แท็ก คุณสามารถเขียนโค้ด HTML มาตรฐาน รวมทั้งรวมองค์ประกอบเฉพาะของ Vue.js เช่น คำสั่งและการเชื่อมโยงข้อมูล สิ่งนี้ทำให้การสร้างส่วนต่อประสานผู้ใช้แบบไดนามิกและโต้ตอบได้ง่ายอย่างเหลือเชื่อโดยใช้เทมเพลต Vue.js

2. การแก้ไข (Interpolation) และการผูกข้อมูล (Data Binding)

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

2.1 การแก้ไข (Interpolation)

การแก้ไข (Interpolation) เป็นเทคนิคที่ช่วยให้คุณสามารถฝังนิพจน์ JavaScript ได้โดยตรงภายในมาร์กอัป HTML ของเทมเพลตของคุณ รูปแบบการแก้ไขที่พบบ่อยที่สุดในเทมเพลต Vue.js คือการใช้วงเล็บปีกกาคู่ ( {{ }}) ไวยากรณ์นี้บอกให้ Vue.js ประเมินนิพจน์ที่อยู่ในวงเล็บปีกกาและแสดงผลในเทมเพลต

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

<template>
  <p>{{ message }}</p>
</template>

Vue.js จะอัปเดตเนื้อหาของ <p> องค์ประกอบโดยอัตโนมัติทุกครั้งที่มีการ message เปลี่ยนแปลง ค่า สิ่งนี้ทำให้ง่ายต่อการสร้างส่วนต่อประสานผู้ใช้แบบไดนามิกที่แสดงข้อมูลล่าสุดเสมอ

2.2 การเชื่อมโยงข้อมูล (Data Binding)

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

ตัวอย่างเช่น สมมติว่าคุณมีอินสแตนซ์ Vue ที่มีคุณสมบัติข้อมูลที่เรียก imageUrl ว่า คุณสามารถผูกคุณสมบัตินี้กับ src แอตทริบิวต์ของ <img> องค์ประกอบโดยใช้โค้ดต่อไปนี้:

<template>
  <img :src="imageUrl" alt="Image">
</template>

ตอนนี้ src แอตทริบิวต์ของ <img> องค์ประกอบจะได้รับการอัปเดตโดยอัตโนมัติทุกครั้งที่มี imageUrl การเปลี่ยนแปลง ค่า สิ่งนี้ทำให้ง่ายต่อการสร้างส่วนต่อประสานผู้ใช้ที่ตอบสนองและไดนามิกโดยใช้ความพยายามเพียงเล็กน้อย

3. คำสั่ง (Directives): การสร้างบล็อคของเทมเพลต Vue.js

คำสั่งคือแอตทริบิวต์พิเศษในเทมเพลต Vue.js ที่ให้วิธีการใช้พฤติกรรมเชิงโต้ตอบกับมาร์กอัป HTML ทั้งหมดเริ่มต้นด้วย v- คำนำหน้า ซึ่งช่วยระบุว่าเป็นแอตทริบิวต์เฉพาะของ Vue.js คำสั่งอนุญาตให้คุณทำงานต่างๆ เช่น การแสดงองค์ประกอบตามเงื่อนไข การวนซ้ำรายการ และการผูกข้อมูลกับแอตทริบิวต์

มาสำรวจคำสั่งที่ใช้บ่อยที่สุดในเทมเพลต Vue.js:

3.1 v-if, v-else และ v-else-if

คำสั่งเหล่านี้ใช้เพื่อแสดงองค์ประกอบตามเงื่อนไขในเทมเพลตของคุณตามนิพจน์ที่กำหนด คำ v-if สั่งจะแสดงผลองค์ประกอบก็ต่อเมื่อนิพจน์ที่ระบุประเมินtrueเป็น v-else สามารถใช้คำสั่งควบคู่ไปกับการ จัด เตรียม v-if องค์ประกอบทางเลือกในการแสดงผลหาก v-if เงื่อนไขเป็น สามารถใช้สำหรับการแสดงเงื่อนไขที่ซับซ้อนมากขึ้น false, v-else-if

ตัวอย่างเช่น:

<template>
  <p v-if="isLoggedIn">Welcome back, user!</p>
  <p v-else>Please log in.</p>
</template>

ในกรณีนี้ ย่อหน้าแรกจะแสดงผลก็ต่อเมื่อคุณสมบัติ isLoggedIn ของข้อมูลคือ true มิฉะนั้นวรรคที่สองจะแสดงผล

3.2 v-for

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

ตัวอย่างเช่น หากต้องการแสดงรายชื่อผู้ใช้ คุณสามารถใช้โค้ดต่อไปนี้:

<template>
  <ul>
    <li v-for="user in users" :key="user.id">
      {{ user.name }}
    </li>
  </ul>
</template>

ที่นี่ Vue.js จะสร้าง<li>องค์ประกอบใหม่สำหรับแต่ละรายการuserในusersอาร์เรย์ การ:keyรวมจะใช้เพื่อให้แต่ละองค์ประกอบมีตัวระบุที่ไม่ซ้ำกัน ซึ่งเป็นสิ่งสำคัญสำหรับอัลกอริทึมการต่างกันของ Vue.js

3.3 v-model

คำ v-model สั่งเป็นเครื่องมืออันทรงพลังที่เปิดใช้งานการเชื่อมโยงข้อมูลแบบสองทาง ซึ่งหมายความว่าไม่เพียงอัปเดตมุมมองเมื่อข้อมูลเปลี่ยนแปลง แต่ยังอัปเดตข้อมูลเมื่อผู้ใช้โต้ตอบกับมุมมองอีกด้วย สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับองค์ประกอบของแบบฟอร์ม

นี่คือตัวอย่าง v-model การดำเนินการ:

<template>
  <input v-model="message" placeholder="Enter a message">
  <p>Your message: {{ message }}</p>
</template>

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

4. การแสดงผล (Rendering) และการรวบรวม (Compilation) เทมเพลต Vue.js

เทมเพลต Vue.js ถูกรวบรวมไว้ในฟังก์ชันการแสดงผล DOM เสมือน Virtual DOM (VDOM) เป็นแนวคิดการเขียนโปรแกรมที่ตัวแทนในอุดมคติหรือ “virtual” ของ UI ถูกเก็บไว้ในหน่วยความจำและซิงค์กับ DOM “real” โดยไลบรารี เช่น Vue.js กระบวนการนี้เรียกอีกอย่างว่า “reactivity”

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

กระบวนการคอมไพล์ใน Vue.js เกิดขึ้นในสองเฟส: เฟสแยกวิเคราะห์และเฟสสร้าง ระหว่างขั้นตอนการแยกวิเคราะห์ Vue.js จะรวบรวมเทมเพลตลงในแผนผังไวยากรณ์นามธรรม (AST) จากนั้น AST จะถูกใช้ในขั้นตอนการสร้างเพื่อสร้างฟังก์ชันการเรนเดอร์ ฟังก์ชันนี้จะใช้เพื่อสร้าง Virtual DOM เมื่อใดก็ตามที่สถานะของคอมโพเนนต์เปลี่ยนแปลง


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

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


Vue.js คืออะไร

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