很重要: 解释说明一下, this需要传入目标方法, 否则,在目标方法中修改data中的值, 将不会重新渲染dom, 跟v-if结合使用的过程中需要注意. 现象就是, 修改v-if绑定的值, 切换不生效.
// 解释说明一下, this需要传入目标方法, 否则,在目标方法中修改data中的值, 将不会重新渲染dom, 跟v-if结合使用的过程中需要注意
<script>
export default {
name: "DynamicFunc",
data() {
return {
key: '',
value: '',
}
},
mounted() {
// 测试一下
this.callModelFun('funcA');
this.callModelFun('funcB');
},
methods: {
test(func) {
},
/**
* 根据方法名称调用方法
*/
callModelFun(funcName) {
let methods = this.$options.methods;
// 解释说明一下, this需要传入目标方法, 否则,在目标方法中修改data中的值, 将不会重新渲染dom, 跟v-if结合使用的过程中需要注意
const _this = this;
methods[funcName](_this);
},
/**
* funcA
* @param _this
*/
funcA(_this) {
console.log("调用A方法")
_this.key = "A";
_this.value = "A";
console.log(_this.key, _this.value)
},
/**
* funcB
* @param _this
*/
funcB(_this) {
console.log("调用B方法")
_this.key = "B";
_this.value = "B";
console.log(_this.key, _this.value)
}
}
}
</script>
更多推荐
Vue中根据方法名称动态调用方法
发布评论