React 的核心特性总结
1、React:声明式开发
(JS或者jQuery属性命令式开发)
2、可以与其他框架并存
3、组件化
4、单向数据流
(父组件可以直接改变子组件的数据,但是子组件不能直接改变父组件的数据)
Props, State 与 render 函数
render函数什么时候执行:
1、组件初次创建的时候,会执行一次
2、当state数据发生变更时,会再次执行
3、当props数据发生变更时,会再次执行
src/Counter.js
import React,{Component,Fragment} from 'react';
class Counter extends Component{
constructor(props){
super(props);
this.addCount=this.addCount.bind(this);
this.state={
counter:1
}
}
addCount(){
this.setState({
counter:this.state.counter+1
})
}
render(){
return(
<Fragment>
<button onClick={this.addCount}>点击</button>
<div>{this.state.counter}</div>
</Fragment>
)
}
}
export default Counter;
父子组件写法
新增子组件Child.js
import React,{Component,Fragment} from 'react';
class Child extends Component{
render(){
return(
<Fragment>
<div>{this.props.num}</div>
</Fragment>
)
}
}
export default Child;
修改父组件 Counter.js
import React,{Component,Fragment} from 'react';
import Child from './Child';
class Counter extends Component{
constructor(props){
super(props);
this.addCount=this.addCount.bind(this);
this.state={
counter:1
}
}
addCount(){
this.setState({
counter:this.state.counter+1
})
}
render(){
return(
<Fragment>
<button onClick={this.addCount}>点击</button>
<Child num={this.state.counter}/>
</Fragment>
)
}
}
export default Counter;
实现效果跟刚才一致