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

在线等,挺急的!如何避免react(dva.js)多次渲染?

在线等,挺急的!如何避免react(dva.js)多次渲染?

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

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

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-09-26
?
守着一只汪

TA贡献1872条经验 获得超3个赞

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号