react组件

react组件主要有两种形式,一种是class组件,一种是函数组件,class组件扩展性强,写起来较为繁琐。函数组件功能单一,但写起来简单。
class组件

class List extends React.Component { render() { return ( ); } }

函数组件
function List(props) { return ( ); }

生命周期
componentDidMount---挂载,componentWillUnmount---卸载,下述示例为组件挂载时设置一个定时器,组件卸载时清除掉定时器。
class Clock extends React.Component { constructor(props) { super(props); this.state = {date: new Date()}; } // 组件挂载 componentDidMount() { this.timerID = setInterval( () => this.tick(), 1000 ); } // 组件卸载 componentWillUnmount() { clearInterval(this.timerID); }tick() { this.setState({ date: new Date() }); }render() { return (Hello, world! It is {this.state.date.toLocaleTimeString()}.); } }ReactDOM.render( , document.getElementById('root') );

state
state用来维护组件内部的数据状态。类似于vue2中的data。改变state时通过setState方法来改变。
class ZButton extends React.Component { constructor(props) { super(props); this.state = { value: null, }; }render() { return ( ); } }

重要思想
状态提升 通常,多个组件需要反映相同的变化数据,这时建议将共享状态提升到最近的共同父组件中去。
单向数据流 数据自上而下传递。
不可变性 【react组件】功能逻辑复杂时,复制一份数据出来操作,尽量不要操作源数据,保持源数据不被改变。

    推荐阅读