微信小程序开发遇到这样一个页面,搜索推荐页面,有历史搜索、标签、行业,点击下拉可以显示全部,写js事件的时候,要根据参数写三个一样的js事件,很麻烦!

微信小程序data数据中key参数动态设置一次使用!-QUI-Notes

动态参数方法——慎用

1.html中 自定义参数,设置需要动态修改的参数

<view class="icon-drop   {{hisFlag?'on margin-b20':''}}" bindtap="toggleBtn" data-box="hisFlag">

2.js动态切换代码

toggleBtn:function(e){
    let flagName = e.currentTarget.dataset.box;
    let flag= !this.data[flagName];
    this.setData({
      [flagName]:flag
    })
 },

这样多话就实现了,点击谁的下拉,就显示谁的全部菜单数据了。功能很简单,不过就是data动态key参数的使用方法。
获取data动态参数的值:

let val=this.data[canName]

动态设置data中key对应的值

this.setData({
      [flagName]:flag
})

这种写法是ES6的解构新特性,没想到小程序竟然兼容。

虽然实现了功能,但是最后我又改回去了,写了三遍js,原因就是:动态写相当于是for循环,假如数据多了,循环会造成卡顿等现象,过于消耗内存,虽然用着爽,写代码方便了,为了更好的用户体验,还是有几个写几个吧。