页面出现数据更新,不是传入组件的数据,但是组件仍会触发updated生命周期
问题复现步骤:
页面
期望的表现:是我的理解有问题吗,updated不应该被触发啊[在这里描述期望的表现]
观察到的表现:
[在这里描述观察到的表现]
屏幕截图和动态 GIF 图
![复现步骤的屏幕截图和动态 GIF 图](图片的 url)
kokeuurv1#
我也发现了这个问题,更新data中的某个数据,页面中的其他组件数据也会被更新,Vue$3.prototype.$updateDataToMP这个方法一直被调用
gg58donl2#
@lichenabson 是我们这个问题太低能了吗。。为什么没人回复,话说你搞明白了吗
6ss1mwsb3#
@KamiJam 问题出在mpvue/index.js initRender函数中
这边的parentData && parentData.attrs永远是个对象,而在defineReactive$$1触发set的时候,
判断两个对象 是永远不相等的,所以会触发组件的wacher的update
这个不是mpvue的问题,我看vue源码也是这么写的我为了性能问题,所以暂时把defineReactive$$1(vm, '$attrs', parentData && parentData.attrs, null, true);这行注释了
pobjuy324#
你好, 注释之后会有其他影响吗?
cczfrluj5#
@zuonidelaowang $attrs 无法使用.在某些业务场景下,组件生命周期没有按预期情况工作
kmynzznz6#
issue超过30天无更新或响应,7天后将自动关闭,如果问题状态有更新请及时更新issue
6条答案
按热度按时间kokeuurv1#
我也发现了这个问题,更新data中的某个数据,页面中的其他组件数据也会被更新,Vue$3.prototype.$updateDataToMP这个方法一直被调用
gg58donl2#
@lichenabson 是我们这个问题太低能了吗。。为什么没人回复,话说你搞明白了吗
6ss1mwsb3#
@KamiJam 问题出在mpvue/index.js initRender函数中
这边的parentData && parentData.attrs永远是个对象,而在defineReactive$$1触发set的时候,
判断两个对象 是永远不相等的,所以会触发组件的wacher的update
这个不是mpvue的问题,我看vue源码也是这么写的
我为了性能问题,所以暂时把defineReactive$$1(vm, '$attrs', parentData && parentData.attrs, null, true);这行注释了
pobjuy324#
你好, 注释之后会有其他影响吗?
cczfrluj5#
@zuonidelaowang $attrs 无法使用.在某些业务场景下,组件生命周期没有按预期情况工作
kmynzznz6#
issue超过30天无更新或响应,7天后将自动关闭,如果问题状态有更新请及时更新issue