Language

React Native trong thế giới thực của tôi


React Native được giới thiệu vào tháng 1 năm 2015 tại React.js Con: Bản xem trước công khai đầu tiên. Vào tháng 3 năm 2015, React Native được mở và có sẵn trên Github. Sau khi phát hành, React Native nhanh chóng trở nên phổ biến và được cập nhật liên tục bởi hàng ngàn lập trình viên trên thế giới. Hiện tại, React Native là một trong những repository có nhiều star nhất trên Github.

Threads

Hiệu năng

Native modules

1
2
3
$ react-native run-ios --simulator 'iPad Pro (9.7 inch)'
$ react-native run-ios --device 'qa'
$ react-native run-ios --configuration Release --device 'qa'
1
2
3
4
5
6
7
8
9
#import <React/RCTBridgeModule.h>
@interface RCT_EXTERN_MODULE(SDKWrapper, NSObject)
RCT_EXTERN_METHOD(supportedEvents)
RCT_EXTERN_METHOD(startScanning)
RCT_EXTERN_METHOD(stopScanning)
RCT_EXTERN_METHOD(playAnimation)
RCT_EXTERN_METHOD(connectToDevice:(NSString *)serialNumber:(RCTPromiseResolveBlock)resolve:(RCTPromiseRejectBlock)reject) //Promise
RCT_EXTERN_METHOD(disConnectToDevice:(RCTPromiseResolveBlock)resolve:(RCTPromiseRejectBlock)reject) //Promise
@end
1
2
3
4
5
6
7
8
9
10
11
12
public class SDKWrapper extends ReactContextBaseJavaModule
{
public SDKWrapper(ReactApplicationContext reactContext)
{
super(reactContext);
}
@Override public String getName()
{
return "SDKWrapper";
}
@ReactMethod public void startScanning() {. . .}
}
1
2
3
4
5
6
import {NativeModules} from 'react-native';
const {SDKWrapper} = NativeModules;
....
SDKWrapper.doSomething();
SDKWrapper.saySomething();
....

Ưu điểm và nhược điểm

Ưu điểm

  • Hiệu năng native

  • Học một lần, chạy mọi nơi

  • Flex box

  • Hot reloading

  • Phát hiện platform trong code

Nhược điểm

  • Không ổn định, khó theo kịp

  • Thiếu tài liệu

  • Single dedicated device thread

  • Gọi callback

Kết luận

Comments