自定义组件,父组件属性有非空默认值,页面动态设置属性后,前后两次触发属性监听
发布于 5 年前 作者 xiaqiang 5718 次浏览 来自 问答

代码结构:基于自定义组件,写了两个组件,一个list,一个list-item,list引用list-item,page页面引用list自定义组件。页面设置默认data(值为空),通过wxml属性传值给list自定义组件,list的properties设置非空默认值,给property添加属性变化响应函数,page onload后动态setData。以上过程会触发两次list组件的属性变化响应函数。

一次是list组件attach前,page data的默认空值(newVal)与property的默认非空值(oldVal)比较。

第二次是页面page onload后,setData的值(newVal)与第一次中page data的默认空值(oldVal)。

// index.js
 
Page({
  data: {
    items: [],
    listSummary: {},
  },
  ...
});
// list.js
 
Component({
  ...
  properties: {
    items: {
      type: Object,
      value: {},
      observer: '_itemsChange',
    },
    listSum: {
      type: Object,
      value: {
        categoryID: 0,
        ...
      },
      observer: '_listSumChange',
    },
  },
  ...
});

想请问以上这种情况是否合理?是否会影响性能?

1 回复

Any update?

回到顶部