遇到的问题:在移动端的问卷页面中,需要通过判断用户是否输入完显示和隐藏下一页的按钮,就需要监听多个数据,但是想到写很多的数据监听很麻烦,就用计算属性+watch监听来实现
<template>
<div class="enterBtn">
<van-button size="large" round template type="info" class="mar_left" @click="goPage(1)" v-if="(active === 0 && flagO )">下一页</van-button>
</div>
</template>
data() {
return {
flagO: false
}
},
computed: {
computedO () {
const { csrq, mz, brdh, jjdh, hbjcjg, hpjcjg, fobjcjg } = this.baseinfo
return {
csrq, mz, brdh, jjdh, hbjcjg, hpjcjg, fobjcjg
}
}
},
watch: {
computedO (newval) {
this.computedNum(newval, 'flagO')
}
},
methods: {
computedNum (newval, flag) {
this[flag] = true
for (var key in newval) {
if (newval[key] === '' || newval[key] === undefined) {
this[flag] = false
}
}
}
}
总的思路就是通过计算属性返回data中的值,就可以通过watch属性进行批量的操作了。