React-Native 组件开发方法

前言

React Native的开发思路是通过组合各种组件来组织整个App,在大部分情况下通过组合View、Image等几个基础的组件,可以非常方便的实现各种复杂的跨平台组件,不过在需要原生功能支持、对性能有要求的情况下还是需要进行一定的原生的开发,合理的组件实现方式可以降低使用和跨平台的成本。

(底层实现分析参见:React-Native 渲染实现分析,本文仅讨论组件开发方法)

React Native组件开发

RN的组件开发有几种方式,JS组件、Native功能组件、NativeUI组件。JS组件是仅使用React Native自带的组件进行组合实现的组件,优势是跨平台方便,但受限于RN实现的效果,一些复杂需求无法实现。而Native组件要强大许多,不过需要考虑平台差异,提供统一的接口难度要大一些。

JS组件(熟悉React可略过)

JS组件是指仅靠RN本身自带的组件开发的组件,是RN下最基础的开发方式,大部分的组件都是JS组件。最大的好处是可以低成本的跨平台。JS组件的开发体验跟React(Web)一致,区别在基础标签不一样,以及样式定义方式不一样。

一个例子,无网络提示组件:

无网络提示组件

(例子语言Typescript)

// 组件的属性定义 interface PropsDefine { // 组件宽度  width: number // 组件高度  height: number // 点击刷新按钮回调,可选 onClickRefresh?: () => void
}
export class NoNetwork extends React.Component<PropsDefine, {}> { // 组件无状态,定义为空:{} // 组件的默认属性定义,单例,实例间共享 static defaultProps = {  onClickRefresh: () => { }
    }