9 คะแนน โดย GN⁺ 2023-09-21 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • Svelte 5 นำฟีเจอร์ชื่อ Runes มาใช้เพื่อยกระดับความสามารถด้านการตอบสนองของ JavaScript
  • ในปี 2019 Svelte 3 ได้เปลี่ยน JavaScript ให้กลายเป็นภาษาที่มี Reactive
    • ใช้คอมไพเลอร์แปลงคอมโพเนนต์แบบประกาศให้เป็น JavaScript ที่ปรับแต่งประสิทธิภาพแล้ว
  • Runes นำ Reactivity นี้ไปใช้ได้ทุกที่
    • ใช้งานในรูปแบบฟังก์ชัน เช่น let count = $state(0);
    • จาก Compile-time Reactivity สู่ Runtime Reactivity
  • ด้วย Runes ความสามารถในการตอบสนองจะขยายข้ามขอบเขตของไฟล์ .svelte ทำให้กระบวนการห่อหุ้มลอจิกและนำกลับมาใช้ซ้ำระหว่างคอมโพเนนต์ง่ายขึ้น
  • เวอร์ชันใหม่ของ Svelte ขับเคลื่อนด้วยแนวคิดแบบ Signals ที่ Knockout เคยใช้มาก่อน แต่เลือกใช้เป็นการทำงานภายในแทนการเปิดให้ใช้งานโดยตรง จึงมีการออกแบบที่แตกต่างออกไปเล็กน้อย
  • มีการนำ runes อย่าง $derived และ $effect มาใช้ โดยเมื่อสิ่งเหล่านี้ถูกประเมิน ระบบจะกำหนดการพึ่งพาของ expression ทำให้ Reactivity ในรันไทม์ดีขึ้น
  • Runes ทำให้แนวคิดเดิมหลายอย่างไม่จำเป็นอีกต่อไป ช่วยให้เฟรมเวิร์ก Svelte เรียบง่ายขึ้น และทำให้สร้างและดูแลแอปได้ง่ายกว่าเดิม
  • เป้าหมายคือให้ผู้ใช้ส่วนใหญ่สามารถแทนที่การใช้งานเดิมได้ โดยฟีเจอร์ใหม่ต่าง ๆ จะเป็นแบบเลือกใช้ เพื่อรับประกันว่าคอมโพเนนต์เดิมยังทำงานต่อไปได้
  • ยังไม่ได้กำหนดวันเปิดตัวของ Svelte 5 และขณะนี้ยังอยู่ระหว่างการพัฒนา

4 ความคิดเห็น

 
ryuheechul 2023-09-21

Evan You โผล่มาด้วย..! https://news.ycombinator.com/item?id=37592471

 
rjcnd105 2023-09-21

ดูเหมือนว่าจะได้รับอิทธิพลจาก qwik มาไม่น้อยเลยนะ

 
GN⁺ 2023-09-21
ความคิดเห็นจาก Hacker News
  • บทความกล่าวถึงการเปิดตัว Svelte 5 และโดยเฉพาะฟีเจอร์ใหม่อย่าง 'Runes'
  • ผู้แสดงความคิดเห็นบางส่วนเปรียบเทียบฟีเจอร์ใหม่ของ Svelte กับตัวแปรสถานะและตัวแปรอนุพันธ์/คำนวณของ Vue และ Solid
  • มีการถกเถียงเกี่ยวกับผลกระทบของ reactive signals โดยบางคนโต้แย้งว่าสิ่งนี้อาจทำให้เกิดความสับสนจากการเปลี่ยนแปลงที่ส่งผลต่อการเปลี่ยนแปลงอื่น
  • ผู้ใช้บางส่วนแสดงความกังวลต่อฟีเจอร์ 'Runes' ใหม่ โดยบอกว่ามันดูเหมือนโค้ดทั่วไปมากกว่าเดิม และอาจทำให้เกิดความสับสน
  • มีความรู้สึกไม่สบายใจกับการเปลี่ยนแปลง โดยผู้ใช้บางส่วนกลัวว่า Svelte จะซับซ้อนเกินไปและสูญเสียความเรียบง่ายไป
  • ผู้แสดงความคิดเห็นคนหนึ่งเสนอว่า Svelte อาจคงรูปแบบไวยากรณ์แบบดั้งเดิมไว้ และแปลงมันเบื้องหลังให้ทำงานคล้ายกับฟีเจอร์ใหม่ได้
  • มีการพูดคุยถึงจุดแข็งเฉพาะตัวของ Svelte คือการมีคอมไพเลอร์แบบกำหนดเองและทำงานคล้ายภาษา โดยบางคนกังวลว่ามันกำลังเริ่มคล้าย JavaScript framework แบบดั้งเดิม
  • ผู้ใช้บางส่วนแสดงความผิดหวังที่ไลบรารีอื่น ๆ ต่างคิดค้นแนวคิด reactive แบบเดียวกันขึ้นมาใหม่อย่างอิสระ ทำให้ความเข้ากันได้ลดลงและการเปลี่ยน framework ในอนาคตยากขึ้น
  • ผู้แสดงความคิดเห็นหลายคนดีใจกับการถอด $: ออก โดยบอกว่าสิ่งนี้จะช่วยผู้ใช้ Typescript และช่วยหลีกเลี่ยงความสับสนด้านไวยากรณ์
  • มีคำถามว่า Svelte จัดการกับอาร์เรย์ขนาดยาวอย่างไร และสามารถทำการคำนวณ/อัปเดตใหม่แบบละเอียดเฉพาะกับองค์ประกอบของ view ที่เกี่ยวข้องได้หรือไม่
  • ผู้ใช้คนหนึ่งแชร์ลิงก์สำหรับเปรียบเทียบระหว่าง Svelte 4, Svelte 5 และ framework อื่น ๆ
  • ผู้ใช้บางส่วนวิจารณ์ที่ Svelte เปลี่ยนจุดยืนเรื่อง 'reactivity by default' โดยมองว่านี่คือการสูญเสียความน่าเชื่อถือ และเป็นอาการของแนวโน้มการประดิษฐ์และค้นพบซ้ำในระบบนิเวศ Node.js
  • ความคิดเห็นสุดท้ายเสนอว่า Svelte กำลังเข้าใกล้ React Hooks มากขึ้น แต่ใช้ขั้นตอนการคอมไพล์เพื่อปรับแต่งสิ่งเหล่านี้ให้เหมาะสม
 
wooseop 2023-09-21

พอลองดูผ่าน ๆ แล้ว รู้สึกว่าทิศทางก็ดูต่างจากเดิมและให้ความรู้สึกแปลกแยกพอสมควรครับ ก็แอบคิดว่าไม่ถึงกับจำเป็น แถมยังดูไม่กระชับน้อยลงด้วย เหมือนกับปฏิกิริยาใน Hacker News เลย เป็นจุดที่น่ากังวลอยู่เล็กน้อย