文章目录

微信小程序可以使用纯数据字段来提升页面更新性能,本文将围绕纯数据字段展开讨论。

组件中的纯数据字段

在组件中,某些不需要展示在界面上的数据字段可以指定为纯数据字段,它们只被记录在this.data中并不参与任何界面渲染过程。通过在Component构造器的options定义段中指定pureDataPattern为正则表达式,合法命名的字段将成为纯数据字段。

示例代码:

Component({
  options: {
    pureDataPattern: /^_/ // 指定所有 _ 开头的数据字段为纯数据字段
  },
  data: {
    a: true, // 普通数据字段
    _b: true, // 纯数据字段
  },
  methods: {
    myMethod() {
      this.data._b // 纯数据字段可以在 this.data 中获取
      this.setData({
        c: true, // 普通数据字段
        _d: true, // 纯数据字段
      })
    }
  }
})

上述组件中的纯数据字段不会出现在WXML中进行展示。

组件属性中的纯数据字段

除了在组件中定义外,属性也可以使用纯数据字段,但不能直接用于组件自身的 WXML 中,属性监听器永远不会触发。从小程序基础库版本2.10.1开始,还可以在页面或自定义组件的json文件中配置pureDataPattern,此时其值应当写成字符串形式。

示例代码:

Component({
  options: {
    pureDataPattern: /^_/
  },
  properties: {
    a: Boolean,
    _b: {
      type: Boolean,
      observer() {
        // 不要这样做!这个 observer 永远不会被触发
      }
    },
  }
})

使用数据监听器监听纯数据字段

通过使用数据监听器,可以对纯数据字段进行监听并响应其变化改变界面表现。

示例代码:

Component({
  options: {
    pureDataPattern: /^timestamp$/ // 将 timestamp 属性指定为纯数据字段
  },
  properties: {
    timestamp: Number,
  },
  observers: {
    timestamp: function () {
      // timestamp 被设置时,将它展示为可读时间字符串
      var timeString = new Date(this.data.timestamp).toLocaleString()
      this.setData({
        timeString: timeString
      })
    }
  }
})
{{timeString}}

<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>

****更多行业产品开发方案,请关注jsudo加速度 https://www.jsudo.com***

【加速度jsudo(www.jsudo.com)】是国内知名企业数字化建设提供商,为企业提供电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售等)、智慧园区建设、数字化营销、人才外包等服务,点击这里查看了解更多行业解决方案。