react-native
日常bug
之前用的57的版本,开发了一款公司内部使用的APP,主要功能有、下单、支付、扫码等。
现在react-native更新到60版本,之前的一些内置组件均已开始被抽离,之前需要link才能添加到原生的工程中的第三方包现已自动添加,无需link
。
需要注意的一点是老项目尽量不要更新Android Studio和Xcode,因为那是自找麻烦。
一些依赖的第三方包尽量指定版本,否则也会有意想不到的红色警报。
在react-native
的开发中,你避免不了要学习一些android
的语法或者Object-c/Swift
来自定义一些rn的NativeModules
。
接下来我会把所遇到的问题记录下来。
react16-rn60 生命周期规范
react在更新,rn在更新,android在更新,xcode也在更新。 抛开组件,大部分js的逻辑要归属于react,所以的react的更新会导致代码逻辑的变动。
React.Component
生命周期生命周期随着版本的更替会逐渐移除或添加一些api,下文中没有提到的生命周期方法将会被移除。
挂载
当组件实例被创建
constructor()
getDerivedStateFromProps()
render()
componentDidMount()
更新
当组件的 props 或 state 发生变化时会触发更新
static getDerivedStateFromProps()
shouldComponentUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()
卸载
当组件被移除会调用
componentWillUnmount()
错误处理
当渲染过程,生命周期,或子组件的构造函数中抛出错误时,会调用
static getDerivedStateFromError()
componentDidCatch()
推荐阅读
贾鹏辉的技术博客官网,贾老大的技术博客,主要是关于移动端开发,有RN、Flutter、Android和Ios等笔记。
React Native指南,汇集React-Native各类学习资源,给大家提供便利。
组件定制
由于原生组件的封装不足以满足业务需求,所以我们需要封装一些基础的公用的组件。
例如我想要实现button
的进度条或加载动画,或者我想要Text
组件自动识别连接等等
目前已有的组件有:
- Button
- 进度条
- 加载动画
- 圆角、阴影等一些常用样式属性以及抬起、按下等事件的监听
- Text
- 自动识别链接
- 给文本添加跳转链接
- 文本高亮