为了账号安全,请及时绑定邮箱和手机立即绑定

如何避免react(dva.js)多次渲染?求指导!

如何避免react(dva.js)多次渲染?求指导!

开满天机 2019-08-11 14:51:15
问题描述:当在浏览器中刷新页面时,如下示例代码:classTestextendsComponent{constructor(props){super(props)this.state={}}componentWillMount(){//获取所有活动数据...code}render(){const{Test}=this.props;console.log(Test)return(这是一段测试代码)}会发现在浏览器后台打印出多次Test,其中前几次多为空对象,那么应该如何避免这种情况呢?
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

shouldComponentUpdate是可以控制是否渲染更新的
classTestextendsComponent{
constructor(props){
super(props)
this.state={}
}
componentWillMount(){
//获取所有活动数据
...code
}
shouldComponentUpdate(nextProps){
if(isEqual(nextProps.Test,this.props.Test){
returnfalse
}
}
render(){
const{Test}=this.props;
console.log(Test)
return(
这是一段测试代码
)
}
                            
查看完整回答
反对 回复 2019-08-11
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

1、如果代码结构正确,这种多次渲染并不会存在问题(没获取到数据之前为空,得到数据再次渲染,正常现象),当然如果没正确控制好代码渲染,就会带来各种bug2、如果想减少不必要渲染,使用shouldcomponenmtupdate
                            
查看完整回答
反对 回复 2019-08-11
  • 2 回答
  • 0 关注
  • 375 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信