博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React Native填坑之旅--Stateless组件
阅读量:6551 次
发布时间:2019-06-24

本文共 1335 字,大约阅读时间需要 4 分钟。

Stateless component也叫无状态组件。有三种方法可以创建无状态组件。

一般一个组件是怎么定义的:

很久以前的方法:

const Heading = createClass({    render() {        return 
{this.props.title}
} })

后来有了ES6

class Heading extends Component {     render() {        return 
{this.props.title}
} }

接ES6的光,看起来好了很多。

填坑

但是,一个组件不需要状态的时候还给出那么多的定义还是不够精炼,太麻烦。于是用stateless component来填这个坑。

// Stateless functionsconst Heading = ({title}) => 
{title}

看起来是多么的简洁、有力!

来个完整的例子:

const HiTitle = ({title}) => (  
{title}
)const App = () => (
)const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF' }, title: { fontSize: 36, fontWeight: 'bold', color: 'red' }})AppRegistry.registerComponent('AwesomeProject', () => App);

运行起来是这样的:

显然stateless component更加的有表达力。但是在一个APP里也不可能所有的组件都是无状态的。所以最好是让一些容器(container)来包裹各种组件,而这些组件就可以写成是无状态的。用过Redux的都知道这么搞很有前途。

无状态组件没有生命周期的方法和显示的状态,这样加大的减少了代码量。但是无状态组件还是可以接收props的。比如,上例中的const HiTitle = ({title}) => (...)里的{ title }就是用来解析赋值props的。

既然可以接收props,那么也就可以设置propTypesdefaultProps。如:

const HiTitle = ({title}) => (  
{title}
)HiTitle.propTypes = {React.PropTypes.string.isRequired}HiTitle.defaultProps = {title: 'stateless component'}

转载地址:http://atnco.baihongyu.com/

你可能感兴趣的文章
胡说编程
查看>>
软件质量之企业成熟度
查看>>
yarn磁盘监控参数
查看>>
jquery javascript获得网页的高度和宽度
查看>>
mysql设置自增id清零 auto_increment
查看>>
linux(Centos7)服务器硬件改动,进入Emergency模式
查看>>
Easyui Treegrid 分页解决方案
查看>>
hihoCoder1038
查看>>
hdu3976(Electric resistance) 高斯消元
查看>>
BZOJ3874:[AHOI2014&JSOI2014]宅男计划(爬山法)
查看>>
【模板】NTT
查看>>
413. Arithmetic Slices(数组中等差递增子区间的个数)
查看>>
unity调用打印机打印
查看>>
python爬虫知识点总结(二十七)Scrapy分布式原理以及Scrapy-Reids源码解析
查看>>
redux&&createStore
查看>>
开发文档学习英文
查看>>
c++ 类的继承与派生
查看>>
[转] Sublime Text3 配置 NodeJs 环境
查看>>
【leetcode】449. Serialize and Deserialize BST
查看>>
HTTP-web服务器接收到client请求后的处理过程(很详细)
查看>>