#关于React.js的一些知识点
生命周期
1.componentDidMount
每个页面加载时加载,他只有一条命,只加载一次!除非,,除非这个页面刷新或者重新加载,他才能再加载。
2.compontentDidupdate(preProp, prevState){}.
在此函数中,通常都要先做判断,然后执行某些操作代码。不然不管父级的任意一个值(props)变化还是本地的任意一个值(state)变化,都会执行此函数。
是比较当前数据与上一次数据有无变化,比如比较this.state.date与prevState.data
或者this.props.data与preProp.data
通常使用时:应该让两个本地(或者两个父级)的值作比较,如果用父级的值与本地的值作比较的话,只要父级的值变化或者更新数据,若本地的值没有与父级的值保持一致,就会陷入无限循环。
也可以使用本地的值与父级的某个值进行比较,但是每次判断后,一定要让将父级的那个值赋给本地,使其保持一致,比如以下代码:
compontentDidupdate(preProp, prevState){
if(this.state.item !== this.props.match.params.item){
this.setState({
item:this.props.match.params.item,
})
}
}
3.注意
如果componentDidupdate()在页面渲染的时候就循环了很多很多次,这种情况下应该检查for循环中是不是有this.setState({})
组件
1.table
是页面一开始加载就渲染好的,如果用const恒量来装内容,那这个table的内容就不能再变了,也就是就不会再渲染table了。所以只能用this.state来装时常更新table的内容。