qddegtya / a-docs

:book: my favs
MIT License
5 stars 0 forks source link

Rax vs React #12

Open qddegtya opened 7 years ago

qddegtya commented 7 years ago

React vs Rax 顶层API 对照表

✔️ 支持 ✖️ 不支持 ✔️(Noop) 仅Compat,未真正实现

名称 类别 React Rax
(React/Rax).Component class ✔️ ✔️
(React/Rax).createClass Top-Level API ✔️ ✖️
(React/Rax).createElement Top-Level API ✔️ ✔️
(React/Rax).cloneElement Top-Level API ✔️ ✔️
(React/Rax).createFactory Top-Level API ✔️ ✔️
(React/Rax).isValidElement Top-Level API ✔️ ✔️
(React/Rax).DOM convenience wrappers(Top-Level API) ✔️ ✖️
(React/Rax).PropTypes validate props(Top-Level API) ✔️ ✔️(Noop)
(React/Rax).Children Top-Level API ✔️ ✖️
(ReactDom/Rax).render Top-Level API ✔️ ✔️
(ReactDom/Rax).unmountComponentAtNode Top-Level API ✔️ ✔️
(ReactDom/Rax).findDOMNode Top-Level API ✔️ ✔️
(ReactDOMServer/Rax).renderToString Top-Level API ✔️ ✔️
(ReactDOMServer/Rax).renderToStaticMarkup Top-Level API ✔️ ✖️

Rax特有的顶层API

名称 类别 React Rax
Rax.findComponentInstance Top-Level API ✖️ ✔️

findComponentInstance - 从Node上获取组件实例

React vs Rax 组件API 对照表

名称 类别 React Rax
Instance of (React.Component/Rax.Component).setState Component API ✔️ ✔️
Instance of (React.Component/Rax.Component).replaceState Component API ✔️ ✖️
Instance of (React.Component/Rax.Component).forceUpdate Component API ✔️ ✔️
Instance of (React.Component/Rax.Component).isMounted Component API ✔️ ✖️

React vs Rax 组件Specs 对照表

注意,由于Rax本身只支持ES6 Class Component,所以,这里只对比React的ES6 Class Component部分

名称 类别 React Rax
render Component Specs ✔️ ✔️
state Component Specs ✔️ ✔️
defaultProps Component Specs ✔️ ✔️
propTypes Component Specs ✔️ ✔️
displayName Component Specs ✔️ ✔️

React vs Rax 组件生命周期 对照表

名称 类别 React Rax
componentWillMount Component Lifecyle ✔️ ✔️
componentDidMount Component Lifecyle ✔️ ✔️
componentWillReceiveProps Component Lifecyle ✔️ ✔️
shouldComponentUpdate Component Lifecyle ✔️ ✔️
componentWillUpdate Component Lifecyle ✔️ ✔️
componentDidUpdate Component Lifecyle ✔️ ✔️
componentWillUnmount Component Lifecyle ✔️ ✔️

特性支持对照 Ref/Context/setNativeProps

名称 类别 React Rax
contextTypes 特性 ✔️ ✔️
getChildContext 特性 ✔️ ✔️
ref Rax跟React一样,支持ref ✔️ ✔️
setNativeProps 直接设置底层属性-直接突变,Rax中作为顶层API存在 RN ✔️
barretlee commented 6 years ago

基本一致