我试试
<div v-if="isRun" v-html="myMethod"></div>
<div v-else v-html="myMethod2"></div>
computed: {
myMethod: function() {
alert('1');
},
myMethod2: function() {
alert('2');
},
}
和isRun
变量的动态更改(按用户切换),我希望myMethod
重新运行时myMethod2
和div
重新运行。
但我尝试使用v-html
只能第一次运行。
如何做到这一点。感谢。
答案 0 :(得分:2)
因此,如果您严格要使用此方法,computed properties会在更新之前通过文档查看其更改的依赖关系
您可以像普通属性一样将数据绑定到模板中的计算属性。 Vue知道vm.reversedMessage依赖于vm.message,因此当vm.message更改时,它将更新依赖于vm.reversedMessage的任何绑定。最好的部分是我们以声明方式创建了这种依赖关系:计算出的getter函数没有副作用,这使得它更容易测试和理解。
这是针对您的需求的简单方法,这种方法有更好的方法
new Vue({
el: "#app",
data:{
isRun: true,
},
computed: {
myMethod: function() {
this.isRun == this.isRun // it doesn't really depend on this.isRun but vue thinks it does
alert('1');
},
myMethod2: function() {
this.isRun == this.isRun
alert('2');
},
}
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.min.js"></script>
<div id="app">
<div v-if="isRun" v-html="myMethod"></div>
<div v-else v-html="myMethod2"></div>
<button @click="isRun = !isRun">Toggle</button>
</div>