12/08/2018, 17:53

React Native Internals

React Native là một framework giúp cho lập trình viên có thể làm app native bằng cách sử dụng Javascript. Chờ chút, ko phải chúng ta đã có Cordova được một thời gian rồi sao? Tại sao lại phải dùng RN nhỉ? Điểm khác biệt chủ yếu giữa một ứng dụng RN và Cordova là việc ứng dụng Cordova chạy trong ...

React Native là một framework giúp cho lập trình viên có thể làm app native bằng cách sử dụng Javascript. Chờ chút, ko phải chúng ta đã có Cordova được một thời gian rồi sao? Tại sao lại phải dùng RN nhỉ?

Điểm khác biệt chủ yếu giữa một ứng dụng RN và Cordova là việc ứng dụng Cordova chạy trong một webview trong khi ứng dụng RN thì được render bằng các view native. Ứng dụng RN có thể truy cập trực tiếp đến mọi API native và view được cung cấp bởi hệ điều hành. Do đó, app xây dựng bằng RN cho chúng ta trải nghiệm và tốc độ như một ứng dụng native vậy.

Bạn có thể nghĩ rằng RN sẽ compile code JS thành code native tương ứng một cách trực tiếp. Tuy vậy điều này rất khó để thực hiện bởi vì Java và Objective-C là những ngôn ngữ kiểu mạnh (mỗi loại dữ liệu có một kiểu riêng biệt) trong khi Javascript thì không phải như vậy. Thay vì thế, cách RN xử lý vấn đề này thông minh hơn nhiều. Về mặt bản chất, RN có thể được coi như là 1 tập hợp của các React component, trong đó mỗi component thể hiện những native view và thành phần tương ứng. Ví dụ, một TextInput native sẽ có một component tương ứng trong React và có thể được import trực tiếp vào trong code JS để sử dụng như bất kì component nào khác. Vì thế, lập trình viên có thể viết code như là cho ứng dụng web React nhưng kết quả nhận được sẽ là một ứng dụng native.

Nghe có vẻ giống ma thuật cổ đại nhỉ

0