9 điểm bởi GN⁺ 2023-09-21 | 4 bình luận | Chia sẻ qua WhatsApp
  • Svelte 5 giới thiệu một tính năng gọi là Runes để cải thiện tính phản ứng của JavaScript
  • Năm 2019, Svelte 3 đã biến JavaScript thành một ngôn ngữ reactive
    • Sử dụng compiler để chuyển các component khai báo thành JavaScript được tối ưu hóa
  • Runes áp dụng tính reactive này ở mọi nơi
    • Áp dụng dưới dạng hàm như let count = $state(0);
    • Từ Compile-time Reactivity sang Runtime Reactivity
  • Thông qua Runes, tính phản ứng được mở rộng vượt ra ngoài ranh giới của file .svelte, đơn giản hóa quá trình đóng gói logic để tái sử dụng giữa các component
  • Phiên bản mới của Svelte vận hành dựa trên Signals mà Knockout từng sử dụng trước đây. Nó được triển khai hơi khác một chút khi được đưa vào phần hiện thực nội bộ thay vì tác động trực tiếp
  • Giới thiệu các rune $derived$effect; khi chúng được đánh giá, chúng sẽ xác định các dependency của biểu thức, từ đó cải thiện tính phản ứng lúc runtime
  • Runes khiến nhiều khái niệm hiện có trở nên không còn cần thiết, giúp đơn giản hóa framework Svelte và làm cho việc xây dựng, bảo trì ứng dụng trở nên dễ dàng hơn
  • Mục tiêu là tạo ra một lựa chọn có thể thay thế cho đa số người dùng, đồng thời cho phép sử dụng các tính năng mới theo kiểu tùy chọn để bảo đảm các component hiện có vẫn tiếp tục hoạt động
  • Ngày phát hành của Svelte 5 vẫn chưa được quyết định và hiện vẫn đang trong quá trình phát triển

4 bình luận

 
ryuheechul 2023-09-21
 
rjcnd105 2023-09-21

Có vẻ như đã chịu ảnh hưởng khá nhiều từ qwik.

 
GN⁺ 2023-09-21
Ý kiến trên Hacker News
  • Bài viết thảo luận về việc phát hành Svelte 5 và đặc biệt là tính năng mới "Runes".
  • Một số người bình luận so sánh tính năng mới của Svelte với trạng thái và các biến dẫn xuất/tính toán của Vue và Solid.
  • Có tranh luận về tác động của các tín hiệu phản ứng, và một số người cho rằng điều này có thể gây ra sự rối rắm khi các thay đổi ảnh hưởng lẫn nhau.
  • Một số người dùng bày tỏ lo ngại về tính năng "Runes" mới, cho rằng nó trông giống mã thông thường hơn trước và có thể gây nhầm lẫn.
  • Có cảm giác không thoải mái trước sự thay đổi, và một số người dùng lo sợ Svelte đang trở nên quá phức tạp và sẽ đánh mất sự đơn giản của mình.
  • Một người bình luận đề xuất rằng Svelte có thể giữ cú pháp truyền thống và chuyển đổi nó trong nền để hoạt động tương tự như tính năng mới.
  • Có thảo luận về điểm mạnh độc đáo của Svelte là có trình biên dịch tùy chỉnh và hoạt động như một ngôn ngữ, trong khi một số người lo ngại rằng nó đang ngày càng giống các framework JavaScript truyền thống.
  • Một số người dùng bày tỏ sự thất vọng khi các thư viện khác đang độc lập tái tạo cùng một khái niệm phản ứng, làm giảm khả năng tương thích và khiến việc thay đổi framework trong tương lai trở nên khó khăn hơn.
  • Một vài người bình luận vui mừng về việc loại bỏ $:, nói rằng điều này sẽ giúp người dùng Typescript và tránh nhầm lẫn về cú pháp.
  • Có câu hỏi về cách Svelte xử lý các mảng dài và liệu chỉ những phần tử view liên quan mới được tính toán/cập nhật lại một cách chi tiết hay không.
  • Một người dùng chia sẻ liên kết để so sánh giữa Svelte 4, Svelte 5 và các framework khác.
  • Một số người dùng chỉ trích việc Svelte thay đổi lập trường về "reactivity by default", cho rằng đây là sự mất niềm tin và là triệu chứng của xu hướng tái phát minh và tái khám phá trong hệ sinh thái Node.js.
  • Bình luận cuối cùng cho rằng Svelte đang tiến gần hơn tới React Hooks, nhưng sử dụng bước biên dịch để tối ưu hóa chúng.
 
wooseop 2023-09-21

Lướt qua thì thấy định hướng cũng có vẻ khác hẳn so với trước và cảm giác lạ lẫm cũng ập đến khá rõ. Cũng thấy hơi tự hỏi có thật sự cần thiết không, lại còn kém cô đọng hơn, nên giống như phản ứng trên Hacker News, đây là điểm khiến tôi hơi lo ngại.