ReactNative入门
程序员文章站
2022-07-16 15:10:13
...
ReactNative入门
1、RN原理:
RN就是一个JS文件;本质是JAVA与JS互相调用来通信;JS调用JAVA是JS唤起Native模块,调用完成后Native层通过bridge来取线程中的数据;JAVA调用JS;
从JS开发者的角度看,利用JavaScript编写逻辑,并且根据React独创的 Virtual DOM 机制,利用虚拟DOM渲染页面,JS执行完页面也就渲染完成了;
从IOS开发者的角度,RN就是以JS的形式告诉Objective-C需要执行什么,然后IOS去执行,同理安卓则是监听事件的形式执行JS,RN与原生的这些交互才是RN能适应三端的原因
2、RN安装:
必须安装:Node、React Native 命令行工具、Python2 以及 JDK 和 Andriod Studio
流程见官网:https://reactnative.cn/docs/getting-started/
3、RN基础概念:
ReactElement和ReactClass
ReactElement是一个描述DOM节点或component实例的字面级对象。通过主要包含:ReactElement分为 DOM Element 和 Component Elements 两类
ReactClass是我们写的components,由于虚拟DOM,我们的代码都是通过Components组装起来的
4、关于React:
特性:1、组件化;2、虚拟DOM;3、JSX语法糖;4、单向数据绑定;
生命周期:
Reactv16.3之前是7个阶段,在之后减去了3个阶段,新增了2个阶段:
constructor() {
1. Initializing state
}
componentWillMount() { // 最新去掉
// 在render之前,永远只执行一次
}
componentDidMount() {
//组件加载完成
}
componentWillReceiveProps() { // 最新去掉
// 再接收一个新的props的时候被调用
}
shouldComponentUpdate() {
// 返回Boolen,在接受新的props或state时调用
}
componentWillUpdate(nextProps, nextState) { // 最新去掉
// 接受一个新的props或state,但还没render时调用
}
static getDerivedStateFromProps(){
//新增,配合componentDidUpdate,可以覆盖componentWillReceiveProps的所有用法
// 在组件构建之后(虚拟dom之后,实际dom挂载之前) ,以及每次获取新的props之后
}
render() {
// 虚拟DOM渲染
}
getSnapshotBeforeUpdate(prevProps, prevState) {
//新增,配合componentDidUpdate, 可以覆盖componentWillUpdate的所有用法
// update发生的时候,在render之后,但在节点挂载前
}
componentDidUpdate(prevProps, prevState, snapshot) {
// 更新后立即执行
}
componentWillUnmount() {
// 执行一些需要清理的任务
}