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()

推荐阅读

组件定制

由于原生组件的封装不足以满足业务需求,所以我们需要封装一些基础的公用的组件。

例如我想要实现button的进度条或加载动画,或者我想要Text组件自动识别连接等等

目前已有的组件有:

  • Button
    • 进度条
    • 加载动画
    • 圆角、阴影等一些常用样式属性以及抬起、按下等事件的监听
  • Text
    • 自动识别链接
    • 给文本添加跳转链接
    • 文本高亮