创建一个新的组件Counter.js以及其子组件Child.js来理解这些概念。
例子:实现点击增加按钮,下面的数字跟着增加的效果。
组件在第一次渲染时(也就是Counter组件被js调用渲染到页面中时),render函数会被默认执行一次;当state或props数据变更的时候,render函数会被重新执行。
//Counter.js import React,{ Component,Fragment } from 'react'; import Child from './Child' class Counter extends Component{ constructor(props) { super(props); this.handleBtnClick = this.handleBtnClick.bind(this); this.state = { counter:1 } } handleBtnClick(){ const newCounter = this.state.counter + 1; this.setState({ counter:newCounter }); } render() { return ( <Fragment> <button onClick = {this.handleBtnClick}>增加</button> <Child number = {this.state.counter}/> </Fragment> ) } } export default Counter;
//Child.js import React,{ Component,Fragment } from 'react'; class Child extends Component{ render() { return ( <div>{ this.props.number}</div> ) } } export default Child;