3年过去了,有官方解决方案了吗??????你们是干什么吃的?不然招我进去 我来搞
小程序有没有类似vue或者mobx提供的计算属性?小程序有没有类似vue或者mobx提供的计算属性? 比如登录的这个业务场景: 需要输入账户,且账户位数是11位 需要输入验证码,且验证码位数是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这种计算属性的方式来应对这种业务需求呢?
2021-06-08