Bất cứ khi nào chúng ta nói về đa nền tảng, phải đề cập đến React Native. Trong kỷ nguyên tiền đa nền tảng, các developer đã vật lộn với các phương pháp truyền thống như công nghệ Native, nơi họ phải viết code riêng cho từng nền tảng mà họ định làm. Chẳng hạn, giả sử một developer cũng phải tạo một ứng dụng cho iOS và Android, họ phải làm mọi thứ riêng biệt cho cả hai nền tảng để xây dựng cùng một ứng dụng. Để loại bỏ quá trình khó khăn này, React Native đã được giới thiệu mang chức năng WORA (Viết một lần, chạy mọi nơi) và giảm bớt toàn bộ quá trình phát triển.
Để hiểu rõ hơn và chi tiết hơn về React Native bạn có thể tham khảo ở đây.
Nội dung chính
Một số Issues của React Native
- Nâng cấp React Native từ phiên bản này sang phiên bản khác là một quá trình tẻ nhạt và tốn thời gian. Đặc biệt là khi một người đã quay lại một vài cập nhật và cố gắng sử dụng nó.
- Trong React Native, thật khó để tìm ra nguyên nhân chính của một ngoại lệ. Theo dõi stack trace trong bảng điều khiển trình gỡ lỗi của Chrome dẫn đến việc gỡ lỗi tốn thời gian, vì nó thường không dẫn đến ExceptionManager và không phải nơi phát sinh lỗi. Trên thực tế, thành phần componentDidCatch cũng không phải là một trợ giúp lớn.
- Đáng buồn là tính năng Hot Reload phổ biến của React Native, không hoạt động đúng với Stateless Functional Components (SFC). Nếu sự cố này được khắc phục, sẽ dễ dàng tải lại bất kỳ code React Native nào một cách đáng tin cậy mà không cần tải lại toàn bộ ứng dụng.
- Đôi khi, React Native có thể không phục hồi được các sự cố. Nó không cung cấp nhiều thông tin về lý do tại sao ứng dụng bị crashed.
- React Native’s ram bundle không được hỗ trợ bởi bất kỳ nền tảng OTA nào như CodePush. Vấn đề này được tạo ra vì React Native không có cộng đồng kết nối rộng.
Giới thiệu React Native 0.61 – Giải pháp cho các issue ở trên
Nhóm React Native đã công bố phát hành React Native 0.61 chỉ trong tuần trước. Với việc giới thiệu phiên bản mới này, giờ đây người dùng sẽ có thể tối ưu hóa các tính năng hiện có của React Native 0.60. Bản cập nhật đã fix các lỗi trong bản cập nhật trước và mang các tính năng cải tiến mới, tất cả đều được đề cập trong tài liệu React Native 0.61.
Các tính năng mới của React Native 0.61
React Native nâng cấp việc hỗ trợ CocoaPods
Trong 0.60, một số cập nhật đã được thực hiện để tích hợp CocoaPods. Tuy nhiên, điều này tạo ra các vấn đề trong use_frameworks!. Vấn đề này đã được giải quyết và hiện đã được khắc phục trong 0.61, giúp tích hợp React Native đơn giản và dễ dàng hơn vào các dự án iOS cần dùng dynamic frameworks.
Sử dụng mớiWindowDimensions Hook
Tính năng mới này có tên là Hook, Nó tự cung cấp và đăng ký cập nhật kích thước một cách tự động. Nó cũng có thể được sử dụng thay cho API Dimensions trong hầu hết các trường hợp.
React hiện được nâng cấp lên 16.9
Phiên bản mới bỏ các tên cũ cho các lifecycle methods UNSAFE_, bao gồm các cải tiến để hành động, v.v.
Fast Refresh
Tính năng mới này là sự pha trộn giữa “live reloading” and “hot reloading”.
Đây là thời điểm cao để nhóm React Native giải quyết các vấn đề của “hot reload”. Và bây giờ họ có, với Fast Refresh. Đây là những gì Fast Refresh cung cấp cho các developer.
- Tính năng Fast Refresh hoàn toàn hỗ trợ React hiện đại cùng với các thành phần chức năng và Hook.
- Nó khéo léo phục hồi từ các lỗi như lỗi chính tả, v.v. Hơn nữa, Fast Refresh cũng quay lại và tải lại đầy đủ khi cần. Fast Refresh không thực hành chuyển đổi code, Nó đáng tin cậy, vì đáng tin cậy nên được bật theo cài đặt mặc định.
Các developer đã bắt đầu đồng ý sau một số thử nghiệm rằng Fast Refresh có độ tin cậy cao cùng với tính linh hoạt. Thật không dễ dàng và đơn giản để đặt React ở vị trí mà bạn cần tải lại thủ công. Fast Refresh hoạt động hoàn hảo cho cả các thành phần lớp và các thành phần chức năng và một số thậm chí tin rằng nó có thể cập nhật nhanh hơn.
Nó thực sự giống như “Hot Reload” – sự khác biệt duy nhất là lần này, nó được thực hiện một cách xuất sắc.
Tất cả những thay đổi và cải tiến mới này đủ để khiến chúng ta và cafedev tin rằng phiên bản React Native 0.61 sẽ tạo điều kiện thuận lợi cho việc phát triển ứng dụng React Native về sau này.