ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

การใช้ Directive ใน Vue.js เพื่อเพิ่มความสามารถให้กับองค์ประกอบของแอปพลิเคชัน

เป็นตัวอย่างการใช้ของ v-if ในการจัดทำอีเว้นต์
การใช้ Diretive ใน Vue.js โดยใช้ v-if ทำเงื่อนไขการแสดงผล
ประเภทโค้ด: JavaScript

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

 

Directive ของ Vue.js คืออะไร?

Directive ใน Vue.js คือกลุ่ม Element พิเศษที่ใช้กำหนดลักษณะบางอย่างให้แท็ก HTML ซึ่งที่ได้กล่าวไปใน Element ในกลุ่มนี้จะขึ้นต้นด้วย "v" ได้แก่ v-on, v-show เป็นต้น แต่ก็มีบางส่วนยังมีรูปแบบ Shorthand หรือก็คือการเขียนแบบย่อ โดย Directive ทั้งหมดของ Vue.js ทั้งแบบเต็มและแบบย่อ จะมีตั้วอย่างดังนี้

ลำดับ แบบเต็ม (Full Syntax) แบบย่อ (Shorthand) อธิบายการใช้งาน
1 v-on:<event> @<event> เป็นการกำหนดตัวจัดการอีเวนต์ เช่น v-on:click หรือ :click
2 v-text   เป็น Directive ที่ใช้สำหรับกำหนดเนื้อหาขององค์ประกอบ HTML จากข้อมูลใน Vue instance หรือส่วนข้อมูลอื่น ๆ ที่ได้กำหนดไว้ในโครงสร้างข้อมูล (data) ของ Vue component นั้น ๆ
3 v-html   เป็นการกำหนดข้อมูลในแบบ HTML ให้กับอิลิเมนต์
4 v-show   เป็นการกำหนดการแสดงผลตามเงื่อนไข
5 v-if   เป็นการกำหนดการแสดงผลตามเงื่อนไข
6 v-else   เป็นการกำหนดทางเลือกอื่น เช่นเงื่อนไข v-if เป็นเท็จ
7 v-else-if   เสำหรับที่เป็นกรณีที่มีหลายเงื่อนไข โดยจะใช้ร่วมกับ v-if
8 v-for   เป็นการแสดงผลแบบวนลุป for
9 v-bind:<attribute> :<attribute> การผูกติดข้อมูลกับแอตทริบิวด์ที่ระบุ
10 v-model   การผูกติดข้อมูลกับแอตทริบิวด์ที่ระบุแบบ 2 ทิศทาง

 ในส่วนของ v-on:<event> สามารถศึกษาได้ที่บทความนี้

การกำหนดข้อมูลด้วย v-text กับ v-html

v-text เป็นคำสั่งที่เอาไว้ทำการแทรกข้อมูลธรรมดาให้เป็นเนื้อหาของอิลิเมนต์เช่นเดียวกับ Mustache ดังตัวอย่างต่อไปนี้

<div id="app" class="m-5 text-center">
   <p v-text="message"></p>
   <p>{{message}}</p>
</div>
<script>
  Vue.createApp({
    data() {
        return {
            message : "Hello World."
        }
    },
  }).mount('#app');
</script>

อธิบายโค้ด ข้างบนสร้างแอปพลิเคชัน Vue ด้วย Vue.createApp() และกำหนดโครงสร้างข้อมูลที่มี message ใน data ของ Vue instance ซึ่งค่าเริ่มต้นของ message คือ "Hello World."

  • ในส่วนของ HTML มีองค์ประกอบ <div> ที่มี id="app" และคลาส CSS m-5 และ text-center ซึ่งใช้สำหรับการจัดหน้าและการสไตล์ตัวองค์ประกอบ
  • ใน <div> นี้มีองค์ประกอบ <p> สององค์ประกอบ อันแรกใช้ v-text="message" ซึ่งกำหนดให้เนื้อหาภายใน <p> เป็นค่าของ message ที่อยู่ใน Vue instance ผ่านการใช้งาน v-text directive
  • อันที่สองใช้ {{message}} ซึ่งเป็นการแทรกข้อมูลด้วยเครื่องหมาย Mustache ({{ }}) ที่ระบุในตำแหน่งที่ต้องการให้ข้อมูล message แสดงผล
  • เมื่อรันแอปพลิเคชัน Vue จะแสดงผลลัพธ์ในหน้าเว็บไซต์ว่า "Hello World." ในองค์ประกอบ <p> ทั้งสอง

ผลลัพธ์ที่ได้

ตัวอย่างการใช้ v-text โดยเป็นคำสั่งของ Vue
ตัวอย่างการใช้ v-text

 

v-html ใน Vue.js ใช้สำหรับแทรก HTML ในองค์ประกอบ HTML ตรงไปตรงมา โดยใช้ข้อมูลจาก Vue instance หรือส่วนข้อมูลอื่น ๆ ที่ได้กำหนดไว้ในโครงสร้างข้อมูล (data) ของ Vue component เมื่อใช้งาน v-html องค์ประกอบ HTML ที่มี v-html จะแสดงผลเป็น HTML ที่ถูกแทรกในตำแหน่งนั้น โดยไม่ถูกแสดงเป็นข้อความธรรมดา ซึ่งสามารถใช้งานส่วนหนึ่งของ Vue instance ที่มีแท็ก HTML, ภาษาตระกูล HTML, หรือโค้ด HTML อื่น ๆ ภายในได้ ซึ่งจะต่างกับ v-text ที่จะแสดงผลเป็นข้อความธรรมดาเท่านั้น ไม่สามารถแสดงผลเป็นแท็ก HTML ได้

ตัวอย่างการใช้งาน v-html:

<div id="app" class="m-5 text-center">
    <p v-html="htmlContent"></p>
    <p>{{htmlContent}}</p>
</div>
<script>
  Vue.createApp({
    data() {
        return {
            htmlContent : "<b>สวัสดี Vue.js</b>"
        }
    },
  }).mount('#app');
</script>

อธิบายโค้ด

  • htmlContent ใน data ของ Vue instance ซึ่งค่าเริ่มต้นของ htmlContent คือ "<b>สวัสดี Vue.js</b>"
  • ในส่วนของ HTML มีองค์ประกอบ <div> ที่มี id="app" และคลาส CSS m-5 และ text-center ซึ่งใช้สำหรับการจัดหน้าและการสไตล์ตัวองค์ประกอบ
  • ใน <div> นี้มีองค์ประกอบ <p> สององค์ประกอบ อันแรกใช้ v-html="htmlContent" ซึ่งกำหนดให้เนื้อหาภายใน <p> เป็น HTML ที่อยู่ใน htmlContent ที่อยู่ใน Vue instance ผ่านการใช้งาน v-html directive
  • อันที่สองใช้ {{htmlContent}} ซึ่งเป็นการแทรกข้อมูลด้วยเครื่องหมาย Mustache ({{ }}) ที่ระบุในตำแหน่งที่ต้องการให้ข้อมูล htmlContent แสดงผล
  • เมื่อรันแอปพลิเคชัน Vue จะแสดงผลลัพธ์ในหน้าเว็บไซต์ว่า "สวัสดี Vue.js" โดยมีตัวหนา (bold) บนหน้าเว็บไซต์ใน <p> แรกและแสดงผลเป็นตัวอักษรทั่วไปในองค์ประกอบ <p>

 

การแสดงผลตามเงื่อนไข

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

การใช้ v-show

v-show คือคำสั่งสำหรับกำหนดเงื่อนไขที่จะแสดงอิลิลเมนต์ โดยเงื่อนไขเป็นจริง ก็จะแสดงผล แต่หากเป็นเท็จอิลิเมนต์นั้นจะถูกซ่อน

ตัวอย่างการใช้ v-show 

<div id="app" class="m-5 text-center d-inline-block">
    <div v-show="success" class="alert alert-success">
        <span>แสดงข้อมูล</span>
    </div>
    <div v-show="error" class="alert alert-danger">
        <span>เกิดข้อผิดพลาด</span>
    </div>
    <div class="input-group">
        <button @click="btnSuccess" class="btn btn-success form-control">
            กดแสดงข้อมูล
        </button>
            <button @click="btnError" class="btn btn-danger form-control">
            กดแสดง Error
        </button>
    </div>
</div>

<script>
  Vue.createApp({
    data() {
        return {
            success : false,
            error : false
        }
    },
    methods : {
        btnSuccess() {
            this.success = true;
            this.error = false;
        },
        btnError() {
            this.success = false;
            this.error = true;
        }
    }
  }).mount('#app');
</script>

อธิบายโค้ด

โค้ดส่วนของ HTML ที่มีการใช้งาน Vue.js เพื่อแสดงแอลเอ็มเอล (HTML element) ต่าง ๆ โดยอิงตามค่าของ success และ error ที่ถูกกำหนดใน Vue instance:

  • <div id="app" class="m-5 text-center d-inline-block">: องค์ประกอบหลักของแอปพลิเคชัน Vue ที่มี id="app" เพื่อใช้ในการเชื่อมต่อกับ Vue instance และมีคลาส CSS m-5, text-center, และ d-inline-block เพื่อกำหนดการจัดหน้าและการแสดงผลตามลำดับ.
  • <div v-show="success" class="alert alert-success">: องค์ประกอบ <div> ที่มีการใช้งาน v-show เพื่อตรวจสอบค่าของ success ถ้าเป็นจริง (true) จะแสดงองค์ประกอบนี้ มีคลาส CSS alert alert-success เพื่อเติมสีพื้นหลังและสไตล์ให้กับองค์ประกอบ.
  • <span>แสดงข้อมูล</span>: องค์ประกอบ <span> ที่มีข้อความ "แสดงข้อมูล" ภายใน.
  • <div v-show="error" class="alert alert-danger">: องค์ประกอบ <div> ที่มีการใช้งาน v-show เพื่อตรวจสอบค่าของ error ถ้าเป็นจริง (true) จะแสดงองค์ประกอบนี้ มีคลาส CSS alert alert-danger เพื่อเติมสีพื้นหลังและสไตล์ให้กับองค์ประกอบ.
  • <span>เกิดข้อผิดพลาด</span>: องค์ประกอบ <span> ที่มีข้อความ "เกิดข้อผิดพลาด" ภายใน.
  • <button @click="btnSuccess" class="btn btn-success form-control">กดแสดงข้อมูล</button>: องค์ประกอบ <button> ที่มีการใช้งาน @click เพื่อเชื่อมต่อกับเมธอด btnSuccess

โค้ด JavaScript ที่ใช้สร้างแอปพลิเคชัน Vue.js และกำหนดการทำงานของข้อมูลและเมธอดต่าง ๆ ดังนี้

  • Vue.createApp({...}) ใช้สร้างแอปพลิเคชัน Vue โดยกำหนดคำสั่งภายในวงเล็บ {...} เป็นค่าที่กำหนดโครงสร้างข้อมูล (data) และเมธอด (methods) ของ Vue instance
  • data() เป็นเมธอดที่ใช้สำหรับกำหนดค่าเริ่มต้นของข้อมูลใน Vue instance ซึ่งในตัวอย่างนี้กำหนดให้ success และ error เป็นค่าเริ่มต้นเป็น false
  • methods เป็นอ็อบเจ็กต์ที่ใช้ในการกำหนดเมธอดใน Vue instance เพื่อให้สามารถจัดการกับเหตุการณ์และปรับแต่งค่าในข้อมูลได้ ในตัวอย่างนี้มีเมธอด btnSuccess() และ btnError() ซึ่งเมื่อถูกเรียกใช้จะเปลี่ยนค่าของ success และ error เพื่อแสดงหรือซ่อนองค์ประกอบ HTML ที่เกี่ยวข้อง
  • mount('#app') เป็นเมธอดที่ใช้เชื่อมต่อแอปพลิเคชัน Vue กับองค์ประกอบ HTML ที่มี id เป็น "app" โดยที่ Vue จะเริ่มทำงานและทำให้ความสอดคล้องกับข้อมูลและเหตุการณ์ที่ถูกกำหนดใน Vue instance

 

ผลลัพธ์ที่ได้

ตัวอย่างการใช้ v-show ในการเงื่อนไการแสดงหรือซ่อน
ตัวอย่างการใช้ v-show

 

การใช้ v-if, v-else และ v-else-if

v-if เป็นนคำสั่งที่ใช้กำหนดเงื่อนไขการแสดงเช่นเดียวกับ v-show แต่ต่างตรงที่ v-if สามารถทำเงื่อนไขหลาย ๆ อัน (v-if, v-else และ v-else-if) ได้ ซึ่งหลักการใช้จะคล้ายกับ v-show 

 แต่มีความแตกต่างกันของ  v-show และ v-if ก็คือ

  • v-show เป็นตัวเลือกที่ใช้สำหรับแสดงหรือซ่อนส่วนของเนื้อหาขึ้นอยู่กับสถานะของค่าที่ถูกตั้งค่าไว้ใน Vue instance หรือ component นั้น โดยหากค่าที่ถูกตั้งค่าเป็น true ส่วนเนื้อหาจะถูกแสดงผล แต่ถ้าค่าเป็น false ส่วนเนื้อหาจะถูกซ่อนไว้ โดยที่ส่วนเนื้อหาที่ซ่อนจะยังคงอยู่ใน DOM และแค่ถูกตั้งค่าให้แสดงหรือซ่อนเท่านั้น
  • v-if เป็นตัวเลือกที่ใช้สำหรับแสดงหรือซ่อนส่วนของเนื้อหาขึ้นอยู่กับเงื่อนไขที่ถูกตั้งค่า แต่ถ้าเงื่อนไขเป็นจริง (truthy) ส่วนเนื้อหาจะถูกแสดงผล และถ้าเงื่อนไขเป็นเท็จ (falsy) ส่วนเนื้อหาจะถูกนำออกจาก DOM นั่นหมายความว่าส่วนเนื้อหาจะถูกสร้างหรือทำลายขึ้นอย่างไดนามิกขึ้นอยู่กับเงื่อนไข

ตัวอย่างโค้ด

<div id="app" class="m-4 d-inline-block">
    <form v-if="!signined && forgutPassword != true" class="v-form row g-2 m-auto p-3 bg-success bg-opacity-25">
        <h4 class="col-12 fw-bold text-light text-center mb-3 mb-sm-4">
            สมาชิกเข้าสู่ระบบ
        </h4>
        <div class="col-12">
            <input type="email" ref="email" placeholder="Email" class="form-control form-control-sm">
        </div>
        <div class="col-12">
            <input type="password" ref="password" placeholder="Password" class="form-control form-control-sm">
        </div>
        <div class="col-12 text-center pt-2">
            <button class="btn btn-sm btn-primary" @click="btnSignClick">
                ตกลง
            </button><br>
            <a href="#" class="link-light mx-2" @click="forgotPassword = true">
                ลืมรหัสผ่าน
            </a>
        </div>
    </form>
    <form v-else-if="forgotPassword" class="v-form row g-2 m-auto p-3 bg-success bg-opacity-25">
        <h4 class="col-12 text-center mb-3 mb-sm-4">
            ระบุ Email ที่ใช้เป็น Login
        </h4>
        <div class="col-12">
            <input type="email" ref="email2" placeholder="Email" class="form-control form-control-sm">
        </div>
        <div class="col-12">
            <button @click="btnForgotPw_click" class="btn btn-sm btn-primary mb-2">
                ตกลง
            </button><br>
            <a href="#" class="link-light mx-2" @click="forgotPassword = false">
                ยกเลิก
            </a>
        </div>
    </form>
    <div v-else class="bg-info bg-opacity-25 p-4">
        <h5>
            ท่านเข้าสู่ระบบแล้ว
        </h5>
        <button @click="signined = false" class="btn btn-danger mt-4">
            ออกจากระบบ
        </button>
    </div>
</div>
<script>
  Vue.createApp({
    data() {
        return {
            signined : false,
            forgotPassword : false
        }
    },
    methods : {
        btnSignClick() {
            let em = this.$refs.email.value.trim()
            let pw = this.$refs.password.value.trim()
            if (em != '' && pw != '') {
                this.signined = true
            } else {
                this.signined = false
                alert('กรุณาใส่ Email และ Password')

            }
        },
        btnForgotPw_click() {
            if (this.$refs.email2.value.trim() != '') {
                alert('Password ถูกส่งไปตาม Email ที่ระบุแล้ว')
                this.forgotPassword = false
            } else {
                alert('กรุณาใส่ Email ที่ใช้เป็น Login')
            }
           
        }
    }
  }).mount('#app');
</script>

 ผลลัพธ์ที่ได้

เป็นการการใช้ v-if, v-else และ v-else-if ในการแสดงผลตามเงื่อนไข
ตัวอย่างการใช้ v-if

 

การใช้ v-for แสดงรายการแบบวนลูป

v-for มีการ้คล้าน for ของ JavaScript ก็คือ การวนลูปเพื่อแสดงผลตามจำนวนรายการที่กำหนดเอาไว้ ซึ่งไม่ต้องเขียนโค้ดแต่ละรายการซ้ำ ๆ 

หลักการการใช้ของ v-for มีดังนี้

  • ข้อมูลที่จะนำมาใช้สร้างรายการนั้น จะต้องเป็นข้อมูลที่อยู่ในรูปแบบอาร์เรย์หรือออบเจ็กต์นั้นเอง
  • การกำหนด v-for จะใช้รูปแบบการเขียนเช่นเดียวกับ for-in ของ JavaScript 
    <div v-for="item in dataArray" ></div>
    <!-- หรือ  -->
    <div v-for="(item, index) in dataArray"></div>​
    • item ใช้อ้างอิงถึงรายการของอาร์เรย์ในการวนลูปแต่ละรอบ
    • datArray คือชื่ออาร์เรย์ที่ใช้เก็บรายการข้อมูล
    • index เป็นการใช้ในกรณีที่เราต้องการอ้างอิงถึงเลขลำดับของอาร์เรย์
  • ข้อมูลที่เป็นออบเจ็กต์ จะใช้รูปแบบดังนี้
    <div v-for="value in dataObject" ></div>
    <!-- หรือ  -->
    <div v-for="(value, property) in dataObject"></div>
    <!-- หรือ  -->
    <div v-for="(value, property, index) in dataObject"></div>​

 ตัวอย่างการใช้ v-for

<div id="app" class="row gx-5 m-3">
    <div class="col-auto">
        <ul>
            <li v-for="c in colors" class="text-capitalize">{{c}}</li>
        </ul>
    </div>
    <div class="col-auto">
        <table class="v-table table table-info table-bordered table-striped text-center">
            <tr class="table-primary">
                <th>#</th>
                <th>สินค้า</th>
                <th>ราคา</th>
            </tr>
            <tr v-for="(p, i) in products">
                <td>{{i + 1}}</td>
                <td class="text-capitalize">{{p.name}}</td>
                <td>{{p.price}}</td>
            </tr>
        </table>
    </div>
    <div class="col-auto">
        <select class="form-select text-capitalize">
            <option v-for="c in colors" class="text-capitalize">{{c}}</option>
        </select>
    </div>
    <div class="col-auto">
        <form>
            <div v-for="(v, p) in {1:'smail', 2:'medium', 3:'large'}" class="form-check">
                <input type="radio" name="size" class="form-check-input">
                <label class="form-check-label text-capitalize">{{p}} {{v}}</label>
            </div>
        </form>
    </div>
</div>
<script>
  Vue.createApp({
    data() {
        return {
          colors : ['red', 'green', 'blue', 'yellow', 'white'],
          products : [
                {name:'คอมพิวเตอร์', price: 15000},
                {name:'ทีวิ', price: 6500},
                {name:'มือถือ', price: 7500},
          ]
        }
    }
  }).mount('#app');
</script>

 ผลลัพธ์ที่ได้

ใช้ v-for ในการนำค่า Array หรือ object มาแสดงข้อมูลแบบรายการต่าง ๆ
ตัวอย่างการใช้ v-for

 

การใช้ v-bind ค่าของแอตทริบิวด์

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

การใช้งาน v-bind สามารถทำได้โดยใช้ตัวย่อ : ด้านหน้าคุณสมบัติที่ต้องการผูกค่า เช่น :attribute หรือ :property เป็นต้น แล้วตามด้วยนิพจน์ JavaScript ที่ต้องการผูกค่า

ตัวอย่างการใช้ v-bind

<div id="app" class="m-4 row">
    <a :href="url" class="col-3">Test Website</a>
    <img :src="img" :alt="imgAlt" @error="onImg_error" class="img col-3">
    <input type="number" :value="randomInt(1, 10)" class="col-3">
    <input type="date" :value="toDay" class="col-3">
</div>
<script>
  Vue.createApp({
    data() {
        return {
            url : 'https://www.google.com/',
            img : 'css/img/com.jpg',
            imgAlt : 'รูปภาพคอม'
        }
    },
    methods : {
       onImg_error() {
            this.imgAlt ='css/img/error.png'
       },
       randomInt(min, max) {
            let num = (max - min) + 1
            return min + Math.floor(Math.random() * num)
       }
    },
    computed : {
       toDay() {
            const dT = new Date();
            let m = dT.getMonth() + 1;
            m = (m >= 10) ? m : '0' + m;
            let d = dT.getDate();
            d = (d >= 10) ? d : '0' + d;
            const formattedDate = `${dT.getFullYear()}-${m}-${d}`;
            return formattedDate;
        }
    }
  }).mount('#app');
</script>

ผลลัพธ์ที่ได้

ตัวอย่างการใช้ v-bind
ตัวอย่างการใช้ v-bind

 

Vue.js เป็นเฟรมเวิร์กที่มีฟีเจอร์ที่มากมายเพื่อเพิ่มความสามารถและความยืดหยุ่นให้กับองค์ประกอบของแอปพลิเคชัน Vue. Directive เป็นหนึ่งในคุณสมบัติสำคัญของ Vue.js ซึ่งช่วยให้คุณสามารถจัดการและควบคุมองค์ประกอบต่าง ๆ ในแอปพลิเคชันได้อย่างมีประสิทธิภาพ Directive เป็นคีย์เวิร์ดที่ถูกนำมาใช้ในแท็ก HTML เพื่อให้คุณสามารถแนบพฤติกรรมพิเศษให้กับองค์ประกอบ ใน Vue.js มี Directive ที่มาพร้อมกับเฟรมเวิร์ก และสามารถใช้งานได้ทันที ดังนี้ v-bind ใช้สำหรับผูกค่า (Binding) ข้อมูลจากตัวแปรหรือส่วนอื่น ๆ ในโมเดลของ Vue ไปยังแอตทริบิวต์ขององค์ประกอบ HTML, v-if, v-else และ v-else-if ใช้สำหรับการตรวจสอบเงื่อนไขและควบคุมการแสดงผลขององค์ประกอบขึ้นอยู่กับเงื่อนไขนั้น ๆ, v-for ใช้สำหรับการทำซ้ำองค์ประกอบขึ้นอยู่กับข้อมูลที่อยู่ในอาเรย์หรือออบเจ็กต์ และสร้างองค์ประกอบซ้ำให้กับแต่ละรายการ, v-on ใช้สำหรับการเชื่อมต่ออีเวนต์ (event) เพื่อทำให้เมื่อเกิดอีเวนต์เกิดขึ้น เช่น การคลิกหรือการป้อนข้อมูล คุณสามารถเรียกใช้งานฟังก์ชันหรือทำตามการกระทำที่คุณต้องการ และ v-model ใช้สำหรับผูกและจัดการข้อมูลระหว่างองค์ประกอบและฟอร์มอินพุต ซึ่งการกล่าวในบทความถัดในการใช้งานร่วมกับฟอร์ม

 


อ้างอิง
Custom Directives ,[ออนไลน์], เข้าถึงได้จาก https://vuejs.org/guide/reusability/custom-directives.html
Vue Directive คืออะไรและจะใช้งานอย่างไร  ,[ออนไลน์], เข้าถึงได้จากhttps://ciksiti.com/th/chapters/8401-what-is-a-vue-directive-and-how-to-use-it---linux-hint
Vue.js Event Handling มาจัดการ Event กัน ,[ออนไลน์], เข้าถึงได้จาก https://itthipat.com/vue-js-event-handling-มาจัดการ-event-กัน/
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เพิ่มประสิทธิภาพเว็บไซต์ ด้วยหน้าเว็บพอดีหน้าจอหลายขนาด รองรับหลายอุปกรณ์
โดย [email protected] พ 07 มิ.ย. 2023 5:32 pm บอร์ด Mindphp Videoman
0
13
พ 07 มิ.ย. 2023 5:32 pm โดย [email protected]
10 โอกาสทางธุรกิจที่ดูไบ ในปี 2023 สำหรับคนที่สนใจ
โดย articleheros พ 07 มิ.ย. 2023 4:21 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
11
พ 07 มิ.ย. 2023 4:21 pm โดย articleheros
ฺB - หน้าภาษาไทยขึ้น Error
โดย Thanapoom1514 พ 07 มิ.ย. 2023 12:59 pm บอร์ด วัฒนาทูล คอมเมิร์ซ - Tester
1
5
พ 07 มิ.ย. 2023 1:01 pm โดย Thanapoom1514
สอบถามวิธีการใช้งาน grid ของ html
โดย fonfonn พ 07 มิ.ย. 2023 10:12 am บอร์ด HTML CSS
0
37
พ 07 มิ.ย. 2023 10:12 am โดย fonfonn
สอบถาม core ที่เกี่ยวข้องกับการสมัครสมาชิก ของ phpBB และ ไฟล์ email ส่ง
โดย flook พ 07 มิ.ย. 2023 9:36 am บอร์ด Programming - PHP
1
47
พ 07 มิ.ย. 2023 10:06 am โดย eange08
รับเต็มจำนวนตามความคุ้มครองและเงื่อนไข ประกันชีวิต ลดหย่อนภาษี
โดย Ellache อ 06 มิ.ย. 2023 11:08 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
17
อ 06 มิ.ย. 2023 11:08 pm โดย Ellache
สอบถามวิธีการเปลี่ยนรูปไอคอนเว็บใน Joomla 3 ยังไงครับ
โดย Thanapoom1514 อ 06 มิ.ย. 2023 1:56 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
24
อ 06 มิ.ย. 2023 2:07 pm โดย tsukasaz
เขียน custom page ส่งเมลด้วย messenger ผ่าน SMTP หรือ ฟังก์ชั่นเมลตามแบบ phpBB
โดย mindphp ส 03 มิ.ย. 2023 2:22 am บอร์ด PHP Knowledge
2
64
ส 03 มิ.ย. 2023 2:33 am โดย mindphp