Bước tới nội dung

React Native

Bách khoa toàn thư mở Wikipedia
React Native
Phát triển bởiFacebook và cộng đồng
Phát hành lần đầu26 tháng 3 năm 2015; 9 năm trước (2015-03-26)[1]
Phiên bản ổn định
0.61.5 / 23 tháng 11 năm 2019; 4 năm trước (2019-11-23)[2]
Kho mã nguồnhttps://github.com/facebook/react-native
Viết bằngJavaScript, Java, C++, Objective-C, Objective-C++, Python
Giấy phépMIT License
Websitefacebook.github.io/react-native/

React Native là một framework mã nguồn mở được sáng tạo bởi Facebook.[3] Nó được sử dụng để phát triển ứng dụng di động Android[4], iOS, Web[5]UWP[6] bằng cách cho phép các nhà phát triển sử dụng React cùng với môi trường ứng dụng gốc (native).

Lịch sử

[sửa | sửa mã nguồn]

Năm 2012 Mark Zuckerberg đã phát biểu, "Sai lầm lớn nhất của chúng tôi khi làm công ty là dựa trên quá nhiều HTML hơn là môi trường phát triển gốc".[7] Ông hứa rằng Facebook sẽ sớm cung cấp trải nghiệm di động tốt hơn.

Kỹ sư Jordan Walke tại Facebook đã tìm ra cách xây dựng các thành phần UI cho iOS bằng một luồng JavaScript.[8] Họ quyết định tổ chức cuộc thi Hackathon để hoàn thiện nguyên mẫu hệ thống để có thể xây dựng các ứng dụng di động gốc (native app) bằng công nghệ này.[9]

Sau nhiều tháng phát triển, Facebook đã phát hành phiên bản đầu tiên cho React Native vào năm 2015. Trong một cuộc hội thảo công nghệ,[10] Christopher Chedeau cho biết Facebook đã sử dụng React Native trong phát triển ứng dụng nhóm và ứng dụng quản lí quảng cáo của họ.[11]

Hoạt động

[sửa | sửa mã nguồn]

Các nguyên tắc hoạt động của React Native gần như giống hệt với React ngoại trừ việc React Native không thao tác với DOM thông qua DOM ảo. Nó chạy một quá trình xử lý nền (phiên dịch JavaScript viết bởi các nhà phát triển) trực tiếp trên thiết bị đầu cuối và giao tiếp với nền tảng gốc qua một cầu trung gian, bất đông bộ và theo đợt.[12][13][14]

Các thành phần React bao bọc mã gốc và tương tác với API gốc qua mô hình UI khai báo và Javascript của React. Điều này giúp việc phát triển ứng dụng cho nhiều nền tảng nhanh hơn.[cần dẫn nguồn]

React Native không sử dụng HTML. Thay vào đó, nó sử dụng các thành phần khác từ luồng Javascript.

Hello World

[sửa | sửa mã nguồn]

Ví dụ về chương trình Hello World:

import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';

export default class HelloWorldApp extends Component {
  render() {
    return (
      <Text>Hello world!</Text>
    );
  }
}

// Bỏ qua dòng này nếu bạn sử dụng công cụ Create React Native App
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);

// Code ReactJS có thể được sử dụng từ một thành phần khác bằng câu lệnh sau:

import HelloWorldApp from './HelloWorldApp';

Tham khảo

[sửa | sửa mã nguồn]

[15]

  1. ^ “React Native: Bringing modern web techniques to mobile”.
  2. ^ “Releases – Facebook/React”. GitHub.
  3. ^ “React Native · A framework for building native apps using React”. Truy cập ngày 6 tháng 11 năm 2019.
  4. ^ “Android Release for React Native”.
  5. ^ “React Native for Web”. Truy cập ngày 6 tháng 11 năm 2019.
  6. ^ Windows Apps Team (ngày 13 tháng 4 năm 2016). “React Native on the Universal Windows Platform”. blogs.windows.com. Truy cập ngày 6 tháng 11 năm 2016.
  7. ^ “Zuckerberg's Biggest Mistake? 'Betting on HTML5'. Mashable. Truy cập ngày 7 tháng 4 năm 2018.
  8. ^ “React (JavaScript library)”.
  9. ^ “A short Story about React Native”. Bản gốc lưu trữ ngày 17 tháng 1 năm 2018. Truy cập ngày 16 tháng 1 năm 2018.
  10. ^ Christopher, Chedeau. “A Deep Dive into React Native”. YouTube. Truy cập ngày 16 tháng 1 năm 2018.
  11. ^ “React Native: Bringing modern web techniques to mobile”.
  12. ^ “Bridging in React Native”. ngày 14 tháng 10 năm 2015. Truy cập ngày 16 tháng 1 năm 2018.
  13. ^ “React Native vs Flutter: Which Cross-Platform Framework is Better?”. Bản gốc lưu trữ ngày 14 tháng 5 năm 2019. Truy cập ngày 6 tháng 11 năm 2019.
  14. ^ “How we build React Native app: 7 things which save your development time. Part 2”. Truy cập ngày 6 tháng 11 năm 2019.
  15. ^ Benefits of React Native and comparison with Native development