Vue.js เริ่มต้น ตอน8 (Conditional Rendering v-if)

11 Jun 2018,
Share: 

สวัสดีครับ ตอนนี้เป็นตอนที่8 แล้วนะครับ จะเกี่ยวข้องกับ Conditional Rendering ซึ่งก็คือการใช้ if else นั่นเอง โดย Vue ก็ออกแบบมาให้เราใช้งานได้ง่ายครับ โดยเราสามารถใส่ if else ใน Attribute ได้เลย มาดูกันครับว่า Vue ทําอะไรได้บ้าง

v-if

เราสามารถใช้ v-if ได้เลยตามนี้ครับ

<h1 v-if="true">Yes</h1>

โดยที่ภายในจะเป็น Condition ของเราตามต้องการครับ ตัวอย่าง

<h1 v-if="Math.random() > 0.5">Yes</h1>

นอกเหนือจากนี้เราสามารถใช้ v-if กับ template ได้ด้วยดังนี้

<template v-if="ok">
  <h1>Title</h1>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</template>

v-else และ v-else-if

เราสามารถใช้ v-else หรือ v-else-if แบบนี้ได้ครับ

<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  Not A/B/C
</div>

การใช้งาน v-else และ v-else-if จะต้องเขียนติดกันนะครับ

Controlling Reusable Elements with key

ในกรณีที่เราใช้ v-if v-else หรือ v-else-if กับ component บางอย่างที่เป็นชนิดเดียวกัน Vue จะพยายามใช้ของเดิมเพื่อให้แสดงผลได้เร็วที่สุด อาจจะทําให้เกิดปัญหาขึ้นได้ดังตัวอย่างนี้

<template v-if="loginType === 'username'">
  <label>Username</label>
  <input placeholder="Enter your username">
</template>
<template v-else>
  <label>Email</label>
  <input placeholder="Enter your email address">
</template>

เมื่อมีการเปลี่ยนประเภทของการ login ข้อมูลใน input จะไม่เปลี่ยน วิธีแก้ปัญหาคือ การใช้ Key ตามตัวอย่างนี้ครับ

<template v-if="loginType === 'username'">
  <label>Username</label>
  <input placeholder="Enter your username" key="username-input">
</template>
<template v-else>
  <label>Email</label>
  <input placeholder="Enter your email address" key="email-input">
</template>

v-show

นอกจาก v-if Vue ยังมีอีกทางเลือกคือ v-show การใช้งานก็เหมือนกันครับ

<h1 v-show="true">Hello!</h1>

ความแตกต่างระหว่าง v-if และ v-show คือ v-show จะยังคง Code html อยู่แต่ไป set css ให้ show หรือ hide เท่านั้น ส่วน v-if ไม่มี Code html อยุ่เลย

v-show ไม่สามารถใช้กับ template ได้ครับ

สรุปคือเราสามารถจัดการ การแสดงผลใน Vue ได้อย่างง่าย โดยใช้ v-if หรือ v-show โดยส่วนใหญ่แล้วเราจะใช้ v-if มากกว่าครับ แล้วพบกันบทความหน้านะครับ

Suggestion blogs

วิธีใช้ คําสั่ง top ดู process ของโปรแกรม ที่ต้องการ

วิธีใช้ คําสั่ง top ดู process ของโปรแกรม ที่ต้องการ ใช้คําสั่งดังนี้

WebP Image คืออะไร

สวัสดีครับ ในบทความนี้เราจะมาทําความรู้จักกับ WebP Image นะครับ ซึ่งจะมาช่วยให้เราโหลดรูปบนหน้าเว็บได้เร็วขึ้นกว่าเดิม และเป็นผลดีกับ SEO ด้วย

พื้นฐานการเขียน JavaScript ES2015 (ES6)

ความเป็นมาของ JavaScriptเมื่อนานมาแล้ว JavaScript เป็นภาษา script ฝั่ง client ของ Netscape ซึ่งเป็น web browser ชื่อดังในสมัยนั้นครับ แล้วหลังจากนั้นไม่นาน Netscape ก็ได้นำเจ้า JavaScript นี้ไปฝากไว้กับ Ecma International ซึ่งเป็นองค์กรที่ก่อตั้งขึ้นเพื่อทำหน้าที่กำหนด standard ให้กับสิ่งต่างๆ โดยเฉพาะ เพื่อจะให้เข้ามาช่วยกำหนด standard ให้กับ JavaScript หลังจากนั้น JavaScript ก็ได้พัฒนาขึ้นมาเรื่อยๆ จนถึง JavaScript ES6


Copyright © 2019 - 2025 thiti.dev |  v1.51.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ