为原生微信小程序添加监听函数

有时候需要监听原生data里面的某个值改变执行相应的函数
方法1:Proxy

一.声明
proxyWatch() {
	const me = this;
	return new Proxy(this.data,{
	  set: function( ) {
	     me.Fn() // 值改变需要执行的func
	     return true;
	   }
	 })
 }
 二.使用
 this.proxyWatch().value= request.xxxx;
 该执行更新视图的setData还是要写
   this.setData({
        value: request.xxxx,
    })

方法2 Object.defineProperty

一.声明
  proxyWatch() {
    const me = this;
    let oldvalue = []
    Object.defineProperty(
      me.data,
      'value',
      {
        get(){
          return oldvalue
        },
        set(newValue) {  
          oldvalue = newValue ;
          me.Fn()
         },
        enumerable : true,
        configurable : true
      }
    )
     
  },
  二.使用
  onLoad(){
  	this.proxyWatch()
  }

二者区别:Proxy 可以一次监听多个 ,Object.defineProperty 监听多个需要遍历

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值