收藏
回答

小程序有没有类似vue或者mobx提供的计算属性?


小程序有没有类似vue或者mobx提供的计算属性?

比如登录的这个业务场景:

  1. 需要输入账户,且账户位数是11位

  2. 需要输入验证码,且验证码位数是4位

此时,登录的按钮才可以点击。


目前小程序里面实现是这样的:

Page({
   data: {
       phoneValue: '',
       verifyCodeValue: '',
       canLogin: false,
   },
   bindPhoneInput: function (e) {
       const phoneValue = e.detail.value;
       this.setData({ phoneValue, canLogin: false });
       const { verifyCodeValue } = this.data;
       if (phoneValue && verifyCodeValue && phoneValue.length == 11 && verifyCodeValue.length == 4) {
           this.setData({ canLogin: true });
       }
   },
   bindVerifyCodeInput: function (e) {
       const verifyCodeValue = e.detail.value;
       this.setData({ verifyCodeValue, canLogin: false })
       const { phoneValue } = this.data;
       if (phoneValue && verifyCodeValue && phoneValue.length == 11 && verifyCodeValue.length == 4) {
           this.setData({ canLogin: true });
       }
   }
})


这样的代价是需要在需要组合属性判断的地方,全部都维护一次canLogin来渲染页面,组合属性越多的话,代码维护就越麻烦,且非常不优雅。



有没有类似vue里面的computed,或者是mobx里面的computed这种计算属性的方式来应对这种业务需求呢?

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

10 个回答

  • 🥥
    🥥
    2021-08-31

    https://github.com/wechat-miniprogram/computed

    2021-08-31
    有用
    回复
  • 小程序技术专员-拉风
    小程序技术专员-拉风
    2018-01-31

    暂时可以通过wxs来完成这个事情 https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxs/

    2018-01-31
    有用
    回复
  • 小程序技术专员-拉风
    小程序技术专员-拉风
    2018-01-31

    你好,你的反馈我们已收到,我们会在后续的版本中考虑增加类似功能。

    2018-01-31
    有用
    回复
  • Daito
    Daito
    2021-06-08

    3年过去了,有官方解决方案了吗??????你们是干什么吃的?不然招我进去 我来搞

    2021-06-08
    有用 9
    回复
  • 粘贴师
    粘贴师
    2020-08-31

    2年过去了,有官方解决方案了吗

    2020-08-31
    有用 5
    回复
  • 忧郁xiao流氓
    忧郁xiao流氓
    2021-09-04

    都快过了四年了,还没出来计算属性

    2021-09-04
    有用 2
    回复
  • sky
    sky
    2023-05-05

    5年过去了。还是没有。

    2023-05-05
    有用
    回复
  • 呱呱
    呱呱
    2021-06-10

    三年过去了,官方有解决方案了吗?

    2021-06-10
    有用
    回复
  • 666
    666
    2019-08-31

    mobx-miniprogram 这个库能用吗?要是能用能否提供个简单的demo

    2019-08-31
    有用
    回复
  • 呼吸🎯
    呼吸🎯
    2018-08-20

    https://github.com/b5156/wxapp-computed

    2018-08-20
    有用
    回复
登录 后发表内容