- 需求的场景描述(希望解决的问题)
想测试下自定义组件生命周期moved是在什么情况下才会执行的。
文档中说自定义组件在节点树的位置变化了的时候会触发,试过如下代码:
<page>
<view wx:if="{{flag}}">111</view>
<my-component/>
</page>
把flag的值从true变为false,view 不在节点树上,my-component的位置应该是改变了,但my-component自定义组件里面的生命周期moved并没有触发。
- 希望提供的能力
刚刚试过用 for 列表生成自定义控件,用的是官方示例“自定义组件组件间关系示例”来修改的。自定义组件的 linkChanged 事件也没有触发。
index.js
const app = getApp()
Page({
data: {
aaa:[
'bobo'
,
'mimi'
,
'nini'
]
},
onLoad:
function
() {
var
that=
this
;
setTimeout(
function
(){
that.setData({aaa:[
'mimi'
,
'nini'
,
'bobo'
]});
console.log(
'change'
);
},5000);
},
})
index.wxml
<
custom-ul
>
<
custom-li
wx:for
=
"{{aaa}}"
wx:key
=
"{{item}}"
data-id
=
"{{item}}"
> item</
custom-li
>
<
custom-li
> item 2 </
custom-li
>
</
custom-ul
>
想了下。。好像我觉得能触发的情况,只有列表渲染的时候,改变列表顺序。。有啥用呢?
谢谢你的提醒,我再试下列表的情况。目前想到的可能用处是在用户手动调整ui方面~
主要是列表的改变肯定是我代码控制的。。那么moved的情况我肯定是知道的。。实际场景确实没用过moved