React 学习笔记
文章目录
组件的生命周期
- Mounting:已插入真实 DOM
- Updating:正在被重新渲染
- Unmounting:已移出真实 DOM
React 为每个状态都提供了两种处理函数,will 函数在进入状态之前调用,did 函数在进入状态之后调用,三种状态共计五种处理函数。
- componentWillMount()
- componentDidMount()
- componentWillUpdate(object nextProps, object nextState)
- componentDidUpdate(object prevProps, object prevState)
- componentWillUnmount()
此外,React 还提供两种特殊状态的处理函数。
- componentWillReceiveProps(object nextProps):已加载组件收到新的参数时调用
- shouldComponentUpdate(object nextProps, object nextState):组件判断是否重新渲染时调用
组件的生命周期在不同状态下的执行顺序
- 当首次装载组件时,按顺序执行 getDefaultProps、getInitialState、componentWillMount、render 和 componentDidMount
- 当卸载组件时,执行 componentWillUnmount
- 当重新装载组件时,此时按顺序执行 getInitialState、componentWillMount、render 和 componentDidMount,但并不执行 getDefaultProps
- 当再次渲染组件时,组件接受到更新状态,此时按顺序执行 componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate、render 和 componentDidUpdate
这些方法的官方介绍
基本模板
|
|
双向绑定
onChange事件
1 2 3 4 5 6 7 8 9 10 11 12
var NoLink = React.createClass({ getInitialState: function() { return {message: 'Hello!'}; }, handleChange: function(event) { this.setState({message: event.target.value}); }, render: function() { var message = this.state.message; return <input type="text" value={message} onChange={this.handleChange} />; } });
笔记
- JSX 的基本语法规则:遇到 HTML 标签(以 < 开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析
- React.createClass 方法用于生成一个组件类,组件类的第一个字母必须大写
- getInitialState:初始化方法,定义state
- this.props:与组件的属性一一对应
- this.props.children:表示组件的所有子节点
- class 属性需要写成 className,for 属性需要写成 htmlFor
- getDefaultProps:设置组件属性的默认值
- this.refs.[refName]:获取真实的DOM节点
- this.state.<状态变量名>:访问状态变量
- this.setState方法:修改状态值
- propTypes:{}:验证组件属性,配合isRequired,保证属性是必须的
- mixins:[]:Mixins混合函数对象,抽取公用函数为对象,ES6语法不支持
- es6语法class声明组件需要.bind(this):组件函数没有自动绑定到this,class的写法,元素上调用组件的函数,需要手动.bind(this)
propTypes更多验证类型
|
|
参考
文章作者 ryan
上次更新 2016-06-01