Skip to main content

เนื้อหาภาษาไทย / Thai content

System guide Content reviewed

การใช้ Template Literals

Template Literals เป็นฟีเจอร์ของ JavaScript ที่ช่วยให้เราสามารถสร้างข้อความ (String) แบบ Dynamic ได้ง่ายขึ้น


1. ความเข้าใจเกี่ยวกับ Template Literals

Template Literals เป็นฟีเจอร์ของ JavaScript ที่ช่วยให้เราสามารถสร้างข้อความ (String) แบบ Dynamic ได้ง่ายขึ้นโดยการใช้เครื่องหมาย backtick (`</code>) แทนเครื่องหมายคำพูด (<code>'</code> หรือ <code>"</code>)</p> <ul class="wp-block-list"> <li>สามารถฝังตัวแปรหรือ Expressions ลงในข้อความได้โดยใช้ <strong><code>${expression}</code></strong></li> <li>มีประโยชน์ในการเขียนโค้ดที่ต้องรวมข้อความกับตัวแปรหรือค่าที่คำนวณได้</li> </ul> <p><strong>ตัวอย่างพื้นฐาน</strong>:</p> <!--CODE_BLOCK--> <pre class="language-javascript"><code class="language-javascript">const name = 'John'; const message = `Hello, ${name}!`; console.log(message); // Output: Hello, John!</code></pre> <hr class="wp-block-separator has-alpha-channel-opacity"/> <h4 class="wp-block-heading">2. การใช้ Template Literals ใน <code>x-text</code></h4> <h5 class="wp-block-heading">ตัวอย่างพื้นฐาน:</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ name: 'John', age: 25 }"> &amp;lt;h1 x-text="`Name: ${name}, Age: ${age}`">&amp;lt;/h1> &amp;lt;/div></code></pre> <p><strong>คำอธิบาย</strong>:</p> <ul class="wp-block-list"> <li><code>x-text</code> ใช้ Template Literals เพื่อสร้างข้อความ Dynamic</li> <li>ข้อความที่แสดงใน <code>&amp;lt;h1></code> คือ <code>Name: John, Age: 25</code></li> </ul> <hr class="wp-block-separator has-alpha-channel-opacity"/> <h4 class="wp-block-heading">3. การใช้ Template Literals ใน <code>:class</code></h4> <h5 class="wp-block-heading">ตัวอย่าง: การเปลี่ยนคลาสตามค่าจาก State</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ isActive: true }"> &amp;lt;button :class="`btn ${isActive ? 'btn-active' : 'btn-inactive'}`"> Toggle &amp;lt;/button> &amp;lt;/div></code></pre> <p><strong>คำอธิบาย</strong>:</p> <ul class="wp-block-list"> <li>ถ้า <code>isActive</code> เป็น <code>true</code>, ปุ่มจะมีคลาส <code>btn btn-active</code></li> <li>ถ้า <code>isActive</code> เป็น <code>false</code>, ปุ่มจะมีคลาส <code>btn btn-inactive</code></li> </ul> <hr class="wp-block-separator has-alpha-channel-opacity"/> <h4 class="wp-block-heading">4. การใช้ Template Literals ใน <code>:style</code></h4> <h5 class="wp-block-heading">ตัวอย่าง: การปรับแต่งสไตล์แบบ Dynamic</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ color: 'red', fontSize: '16px' }"> &amp;lt;p :style="`color: ${color}; font-size: ${fontSize}`">Dynamic Style&amp;lt;/p> &amp;lt;button @click="color = 'blue'; fontSize = '20px'">Change Style&amp;lt;/button> &amp;lt;/div></code></pre> <p><strong>คำอธิบาย</strong>:</p> <ul class="wp-block-list"> <li>ข้อความใน <code>&amp;lt;p></code> จะเปลี่ยนสีและขนาดฟอนต์ตามค่าของ <code>color</code> และ <code>fontSize</code></li> <li>เมื่อคลิกปุ่ม สีจะเปลี่ยนเป็น <code>blue</code> และฟอนต์จะเปลี่ยนเป็น <code>20px</code></li> </ul> <hr class="wp-block-separator has-alpha-channel-opacity"/> <h4 class="wp-block-heading">5. การประยุกต์ใช้ในสถานการณ์ต่าง ๆ</h4> <h5 class="wp-block-heading">ตัวอย่าง: การสร้างลิงก์แบบ Dynamic</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ username: 'johndoe' }"> &amp;lt;a :href="`https://example.com/user/${username}`" x-text="`Visit ${username}'s Profile`">&amp;lt;/a> &amp;lt;/div></code></pre> <p><strong>คำอธิบาย</strong>:</p> <ul class="wp-block-list"> <li>ลิงก์ <code>href</code> จะถูกสร้างแบบ Dynamic เป็น <code>https://example.com/user/johndoe</code></li> <li>ข้อความที่แสดงใน <code>&amp;lt;a></code> คือ <code>Visit johndoe's Profile</code></li> </ul> <hr class="wp-block-separator has-alpha-channel-opacity"/> <h4 class="wp-block-heading">6. การใช้ Template Literals กับ Array และ Object</h4> <h5 class="wp-block-heading">ตัวอย่าง: วนลูปแสดงข้อความจาก Array</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ items: ['Apple', 'Banana', 'Cherry'] }"> &amp;lt;ul> &amp;lt;li x-for="(item, index) in items" x-text="`${index + 1}: ${item}`">&amp;lt;/li> &amp;lt;/ul> &amp;lt;/div></code></pre> <p><strong>คำอธิบาย</strong>:</p> <ul class="wp-block-list"> <li><code>x-for</code> ใช้ Template Literals เพื่อแสดงรายการแบบมีลำดับ</li> <li>ข้อความที่แสดงใน <code>&amp;lt;li></code>: <code>1: Apple 2: Banana 3: Cherry</code></li> </ul> <h5 class="wp-block-heading">ตัวอย่าง: แสดงค่าจาก Object</h5> <!--CODE_BLOCK--> <pre class="language-php"><code class="language-php">&amp;lt;div x-data="{ user: { name: 'John', age: 25 } }"> &amp;lt;h1 x-text="`Name: ${user.name}, Age: ${user.age}`"></h1> </div>

คำอธิบาย:

  • ข้อความที่แสดงใน <h1> คือ Name: John, Age: 25

7. ข้อดีของการใช้ Template Literals

  • โค้ดกระชับและอ่านง่าย: ลดการใช้เครื่องหมายบวก (+) ในการต่อข้อความ
  • รองรับค่าที่ซับซ้อน: ใช้ได้กับ Array, Object, หรือผลลัพธ์จาก Expression
  • Dynamic มากขึ้น: เหมาะกับการสร้างข้อความที่ต้องเปลี่ยนแปลงบ่อย

8. ข้อควรระวัง

  • การประมวลผล: Template Literals ใน Alpine.js จะประมวลผลทุกครั้งที่ State เปลี่ยน อาจมีผลต่อประสิทธิภาพหากใช้มากเกินไป
  • ความปลอดภัย: หากค่ามาจากแหล่งภายนอก (เช่น API) ควรตรวจสอบและป้องกันการแทรกโค้ดที่ไม่ปลอดภัย (XSS)

สรุป

ในบทนี้ คุณได้เรียนรู้วิธีใช้ Template Literals ใน x-text, :class, และ :style เพื่อสร้างค่าที่ Dynamic และยืดหยุ่น ในบทถัดไป เราจะพูดถึงการแสดงและซ่อนองค์ประกอบแบบ Dynamic ด้วยคำสั่ง x-show!

Office.in.th Custom Service

Want to build or adapt a system from this structure?

Office.in.th designs and develops enterprise web applications, API integrations, and public- and private-sector management systems, with long-term support.

See our software development service