1、behavior.js

module.exports = Behavior({lifetimes: {created() {this._originalSetData = this.setData // 原始 setDatathis.setData = this._setData // 封装后的 setData}},definitionFilter(defFields) {const computed = defFields.computed || {}const computedKeys = Object.keys(computed)const computedCache = {}// 计算 computedconst calcComputed = (scope, insertToData) => {const needUpdate = {}const data = defFields.data = defFields.data || {}for (let key of computedKeys) {const value = computed[key].call(scope) // 计算新值if (computedCache[key] !== value) needUpdate[key] = computedCache[key] = valueif (insertToData) data[key] = needUpdate[key] // 直接插入到 data 中,初始化时才需要的操作}return needUpdate}// 重写 setData 方法defFields.methods = defFields.methods || {}defFields.methods._setData = function (data, callback) {const originalSetData = this._originalSetData // 原始 setDataoriginalSetData.call(this, data, callback) // 做 data 的 setDataconst needUpdate = calcComputed(this) // 计算 computedoriginalSetData.call(this, needUpdate) // 做 computed 的 setData}// 初始化 computedcalcComputed(defFields, true) // 计算 computed}
})

2、use.js

const beh = require('./behavior.js')
Component({behaviors: [beh],data: {a: 0,},computed: {b() {return this.data.a + 100},},methods: {onTap() {this.setData({a: ++this.data.a,})}}
})

微信小程序自定义组件的计算属性功能相关推荐

  1. 微信小程序自定义组件(二)

    微信小程序自定义组件 ps 由于作业部落貌似出了点问题,耽误了点时间,找了一个stackedit.io准备写.无奈,这是要自己建编辑器的节奏啊.没有一个能靠的注 为何存在组件 组件间的关系 使用rel ...

  2. 基于canvas 2D实现微信小程序自定义组件-环形进度条

    基于canvas 2D实现微信小程序自定义组件-环形进度条 最近开发一个小程序项目博闻金榜答题小程序,需要使用到一个可以显示答题倒计时的组件,基于进度条实现,下面就主要介绍基于canvas2D实现一个 ...

  3. 微信小程序自定义组件,提示组件

    微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加"components"目录,然后像添加Page ...

  4. 微信小程序--自定义组件(超详细 从新建到使用)

    微信小程序–自定义组件 微信小程序官网介绍! 本文提供给急需使用自定义组件人群,以下是博主个人理解和案例!可以辅助官网来看 介绍: 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程.所 ...

  5. 微信小程序自定义组件子传父详解(多图)

    微信小程序自定义组件子传父详解 前言: 刚开始为了测试父传子,所以把页面的数组放在了父组件中 1. 然而子组件中绑定的自定义点击事件依然放在子组件的js文件中 2. 所以就会出现我们点击页面的文字能改 ...

  6. 微信小程序自定义组件的基本使用

    微信小程序自定义组件的基本使用 组件与模块类似,实现了功能的复用,提高开发速率,减少代码量 在开发过程中 , 总会遇到一些功能板块是相同或很类似的 .如两个不同页面都有搜索框 , 或者 导航栏等 . ...

  7. 微信小程序自定义组件-树形数据表格(进阶版)

    前言 一.下载引用 二.使用treegrid组件 三.使用文档 属性 事件 四.组件源码 利用递归思想编写的表格行--treegrid-treeline 树形表格--treegrid-treegrid ...

  8. 小程序组件onload_微信小程序自定义组件(一)

    好吧,突然发现学不完了,一下子,那就分开吧,由于时间太久,直接重新大致复习了一下 微信小程序自定义组件 微信小程序支持自定义组件 下方的目录 其中,components为组件目录,nodemodule ...

  9. 一步步教你实现微信小程序自定义组件

    一步步教你实现微信小程序自定义组件 更新时间:2022年03月21日 11:12:34   作者:naluduo233 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,下面这篇文章主 ...

最新文章

  1. 通过“四大行为”对WCF的扩展[原理篇]
  2. 性能测试 (四) 常用指标
  3. HDU6428-Calculate-数论函数
  4. 关闭线程 C语言,如何用C语言实现多线程
  5. 周鸿祎回应参加RSA大会一事:已在家自行隔离 目前身体状况一切都好
  6. 【python】【openCV】分水岭算法
  7. python os模块进程管理
  8. silverlight异常
  9. Git - Merge: refusing to merge unrelated histories
  10. 自助任务平台WQ5.5.6源码对接微信带分类信息线报赏金赚悬赏猫驴赚网版本
  11. 生产制造行业ERP系统十大品牌
  12. system32下 exe文件作用
  13. loj6198谢特 后缀数组+并查集+Trie
  14. c语言 椭圆,C语言画圆椭圆
  15. mac pdf分割方法,及其方便!!
  16. Oracle的逻辑读和物理读
  17. 王者荣耀选手退役后转行Python,自学的那种!网友:中国版“阿甘”
  18. 同名同姓查询,姓名查重,名字查重小程序,看看与你同名同姓的人有多少。
  19. LSTM中对time step的理解
  20. java 登陆短信验证码_Java实现短信验证码

热门文章

  1. 空调「嘀嘀」声的频率的获取及判断
  2. 最小宽度适配:Smallest-width
  3. 快要C语言考试了,大学生们收好这些经典程序案例,包你考试过关!
  4. java调用https的webservice,https的wsdl
  5. 手把手教你从零搭建深度学习项目(可下载PDF版)
  6. 服务器文件夹重定向,使用组策略将用户文件夹重定向到D盘
  7. PromQL 中内置函数介绍
  8. 今天19:30 | 科普大佬说,带大家探寻AI如何激发人类的创造力
  9. PAT - 天梯赛 L3-004 肿瘤诊所 (BFS 三维广搜)
  10. 【医院/诊所挂号系统】如何减少预约患者恶意退号爽约?