react中props & state
关于props和state以我目前了解下来的情况,大概整理了下两者的区别和共同之处:
相同点
- 都可以在组件内部设置默认值
- 都会触发render更新
不同点
- props可以从父组件获取初始值而state不可以
- props可以由父组件修改,state不可以
- props不可以在组件内部修改,state可以(其实内部也可以修改,只是不推荐这种做法)
简单总结下:组件在运行时需要修改的数据就是state。
关于初始值:
props有 getDefaultProps方法可以设置初始值。这个方法会返回一个js对象,内部就是这个组件的props。
如下:
var Test = React.createClass({ getDefaultProps : function(){ return { test : "default prop value" } }, render : function(){ return{this.props.test}
} });
至于state则有getInitialState和setState分别来初始化和修改state。
this.setState({name : "test name"})