当前位置: 首页 > 文档资料 > Rax 中文文档 >

从 Rax 0.x 升级

优质
小牛编辑
127浏览
2023-12-01

从 Rax 0.x 升级为 Rax 1.x,需要注意以下事项:

render 变更

import { createElement, render } from 'rax';
import UniversalDriver from 'driver-universal';
...
// 需在 render 方法中指定 Driver 进行渲染
render(<App />, document.body, { driver: UniversalDriver });

style 变更

style 不再内置支持数组格式

<View style={[a, b, c]}>
// 需替换为
<View style={{...a, ...b, ...c}}>
// 或者
<View style={Object.assign({}, a, b, c)}>

能力升级

您可以继续使用类组件(Class Component),同样也可以使用具有 Hooks API 的函数组件(Function Component)。

使用可参考 Hooks

核心 API 变更

为了减小 Rax 的体积,让开发者更加专注与 Hooks 的开发方式。Rax 将部分 API 从 Core 中移了出来。这并非代表功能的缺失,我们仍然可以通过引入独立包的方式使用它们。

比如 findDOMNode:

import findDOMNode from 'rax-find-dom-node';
findDOMNode(component);

我们移除的 API 如下,更多详细使用方式请参考 《API 参考》

包名说明
rax-children获取 Children 节点
rax-proptypesprops 验证器
rax-is-valid-element验证对象是否为 Rax 元素
rax-clone-element克隆并返回新的 Rax 元素
rax-create-factory返回用于生成指定类型 Rax 元素的函数
rax-create-portal将子元素渲染到 DOM 组件层次结构之外的 DOM 节点中
rax-hydrate渲染内容时保留已有 DOM 结构,并补充事件绑定
rax-find-dom-node访问真实 DOM 节点
rax-unmount-component-at-node从 DOM 中移除已装载的 Rax 组件
rax-set-native-props直接更改原生组件的属性件

样式单位变更

  • 不在对 rem 单位相对 750 进行计算处理,同时新增 rpx 单位代替原先的 rem
<View style={{ width: '300rem' }}>
// 需替换为
<View style={{ width: '300rpx' }}>
  • lineHeight 与 w3c 标准对齐,不在默认按 750 相对单位计算
<View style={{ lineHeight: 30}}>
// 需替换为
<View style={{ lineHeight: '30rpx' }}>

组件废弃

  • rax-touchable 废弃
<Touchable style={...} onPress={...}></Touchable>
// 需替换为
<View style={...} onClick={...}></View>
  • rax-picker, rax-button, rax-switch 废弃,@rax-ui 库会替代这些