收藏
回答

自定义组件,父组件属性有非空默认值,页面动态设置属性后,前后两次触发属性监听

框架类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Component 工具 6.6 1.7.2



代码结构:基于自定义组件,写了两个组件,一个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',
    },
  },
  ...
});


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





最后一次编辑于  2018-01-30
回答关注问题邀请回答
收藏

1 个回答

  • royslg
    royslg
    2018-02-01

    Any update?

    2018-02-01
    有用
    回复
登录 后发表内容