Alpine.js: jQuery ที่เขียนแบบ Vue

January 8th, 2021

ว่าด้วย JavaScript library

jQuery เป็น javascript library ที่ใช้กันมานานมากเนื่องจากปัญหาการใช้งาน javascript ข้าม browser ในสมัยก่อน แต่ตอนนี้ก็มีมาตรฐานกันมากขึ้นทำให้ jQuery ลดบทบาทลงไป แต่ก็ปฏิเสธไม่ได้ว่า jQuery ทำให้การเขียน javascript ง่ายขึ้นกว่าการเขียน vanilla javascript มาก เพราะว่ามี function อะไรมาให้พร้อม และเขียนสั้นกว่า

ต่อมาก็มี javascript framework และ library ที่ดีกว่า เช่น การเขียนเป็น component การใช้ event การมี state ซึ่งทำให้การเขียนเว็บแอปพลิเคชันง่ายขึ้นอย่างมาก โค้ดอ่านรู้เรื่อง มีการแยกส่วนการทำงาน

แต่อย่างไรก็ตาม React กับ Vue ก็ไม่ได้เหมาะกับงานที่เขียนน้อย ๆ เช่น dropdown ในหน้าที่ไม่ต้องการความ interactive มากนัก

Alpine.js

Alpine.js เป็น framework ขนาดเล็กที่ทำให้สามารถเขียนส่วนที่ต้องการ JavaScript เล็กน้อย เช่น dropdown หรือตัว toggle dark mode แบบเดียวกับที่เขียน Vue เลย

<div x-data="{show: true}">
  <button @click="show = !show" x-text="show ? 'Hide' : 'Show'"></button>
  <p x-show="show">Insert content here</p>
</div>

นี่คือตัวอย่างการใช้งาน Alpine เพื่อแสดงเนื้อาภายในครับ จะเห็นว่ามีการใช้ attribute คล้าย ๆ กับเขียน Vue เลยครับ

  • x-data จะกำหนด state และขอบเขตการใช้งาน
  • x-text จะเป็นทำให้ข้อความภายในเป็นไปตามโค้ดที่ใส่ไปครับ
  • x-show กำหนดการแสดงผลขึ้นตามค่าที่ใส่ไปว่าเป็น true หรือ false ครับ @click กำหนดว่าคลิกแล้วต้องทำอะไรต่อ

Alpine เหมาะกับการใส่ความ dynamic เล็กน้อยที่ใช้ข้อมูลจากทาง server side เช่น เว็บที่ใช้ Django หรือ Rails ทำ แต่ไม่เหมาะสำหรับการทำเว็บแอปพลิเคชั่น เพราะว่าโค้ดจะซับซ้อนกว่าเดิม และการสื่อสารระหว่าง component ลำบากครับ

แหล่งศึกษาเพิ่มเติม