Cập nhật Angular: SignalForms, Mutations và Tương lai
Giới thiệu
Angular là một trong những framework phát triển ứng dụng web phổ biến nhất hiện nay. Với những cập nhật mới nhất từ đội ngũ phát triển Angular, chúng ta có thể khám phá nhiều tính năng mới và cải tiến đáng kể. Trong bài viết này, chúng ta sẽ tìm hiểu về SignalForms, tính năng mutations trong ngrx-toolkit và những thông tin khác liên quan đến Angular.
✅ SignalForms chính thức có mặt trong main!
SignalForms đã chính thức được hợp nhất vào nhánh chính của Angular! Từ thứ Tư vừa qua, đã có một phiên bản Angular được đánh dấu là next (không phải latest) bao gồm SignalForms mới. Điều này có nghĩa là đối với những nhà phát triển nhiệt huyết, bạn đã có thể thử nghiệm, mặc dù vẫn đang ở trạng thái thử nghiệm.
Những điều cần lưu ý:
- Không mong đợi mọi thứ hoạt động hoàn hảo ngay lập tức. Các API có thể thay đổi nhanh chóng và tài liệu sẽ được cập nhật sau.
- Nếu bạn muốn thử nghiệm, hãy bắt đầu ngay!
🎙 Hỏi đáp Angular với Mark & Jeremy
Tuần trước, chúng ta đã có một buổi hỏi đáp về Angular với Mark Thompson và Jeremy Elbourn từ đội ngũ Angular. Tại đây, SignalForms là một trong những chủ đề chính được bàn luận.
Điểm nổi bật:
- Tương lai của Reactive Forms: Jeremy đã đề cập rằng SignalForms dự kiến sẽ thay thế cả Reactive và Template-driven forms trong tương lai. Tuy nhiên, điều này không có nghĩa là các form hiện tại sẽ bị loại bỏ, bạn không cần phải viết lại mã cho các form đã tồn tại.
- Zoneless: Một chủ đề quan trọng khác trong buổi hỏi đáp là Zoneless. Jeremy giải thích rằng các nhà phát triển cần chú ý hơn đến trạng thái đang thay đổi khi sử dụng Signals, biểu thị cho trạng thái của Angular.
Thời gian quan trọng:
- Vấn đề Zoneless: 49:30
🛠 Tính năng Mutations trong SignalStore
NgRx-toolkit cung cấp một tập hợp các mở rộng tùy chỉnh cho NgRx SignalStore. Một trong những tính năng nổi bật là hỗ trợ Redux DevTools. Với sự khởi xướng của Manfred Steyer, chúng ta đã giới thiệu một tính năng mutation có thể sử dụng mà không cần SignalStore.
Tính năng Mutations:
- Định nghĩa các lệnh HTTP: Bạn có thể định nghĩa các lệnh
POST,PUT, hoặcDELETE, và sau đó gọi chúng. - Điều khiển race conditions: Phiên bản của ngrx-toolkit xử lý các điều kiện race và cung cấp thông tin trạng thái tương ứng.
Lưu ý:
- Tính năng mutations hiện không phải là ưu tiên hàng đầu của đội ngũ Angular, nhưng nó rất cần thiết cho những ai muốn sử dụng Signals.
🤫 Chi phí ẩn của việc cập nhật Angular
Rất nhiều người cho rằng việc cập nhật Angular rất đơn giản, bạn chỉ cần chạy ng update. Tuy nhiên, một trong những thách thức lớn là cập nhật các thư viện bên thứ ba, vì có khả năng chúng không được duy trì hoặc lạc hậu.
Thảo luận trong Angular Space Podcast:
- Chủ đề này đã được bàn luận trong podcast tuần trước với Armen Vardanyan và Gerome Grignon.
🛑 Analog.js ngừng hỗ trợ định dạng ng
Analog.js, một meta-framework cho Angular, đã ngừng hỗ trợ định dạng ng. Định dạng này từng được giới thiệu như một cú sốc trong cộng đồng và hiện tại Angular đang thử nghiệm với các định dạng tương tự.
☀️ Tóm tắt mùa hè của Angular
Cuối cùng, đội ngũ Angular đã công bố tóm tắt tất cả các tính năng mới đã được phát triển trong mùa hè. Đây là một cái nhìn tổng quan tuyệt vời nếu bạn muốn nắm bắt mọi thứ đã xảy ra trong những tháng gần đây.
Tài nguyên tham khảo:
Kết luận
Với những cập nhật này, Angular tiếp tục khẳng định vị thế của mình trong cộng đồng phát triển web. Hãy theo dõi các thông tin mới nhất để không bỏ lỡ bất kỳ tính năng nào. Nếu bạn muốn tìm hiểu thêm về Angular và các công nghệ liên quan, hãy tham gia các buổi hội thảo trực tuyến và podcast của cộng đồng.
Câu hỏi thường gặp (FAQ)
1. SignalForms có gì mới?
SignalForms cho phép nhà phát triển dễ dàng quản lý trạng thái mà không cần sử dụng các form truyền thống.
2. Làm thế nào để sử dụng tính năng mutations trong ngrx-toolkit?
Bạn có thể định nghĩa các lệnh HTTP như POST, PUT, DELETE và gọi chúng dễ dàng trong ứng dụng của bạn.
3. Có những rủi ro nào khi cập nhật Angular không?
Việc cập nhật các thư viện bên thứ ba có thể gặp rủi ro nếu chúng không được duy trì hoặc không tương thích với phiên bản Angular mới nhất.