如何在div重新初始化时运行方法 - Vuejs

时间:2018-02-01 03:46:21

标签: javascript vue.js vuejs2

我试试

<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重新运行时myMethod2div重新运行。

但我尝试使用v-html只能第一次运行。

如何做到这一点。感谢。

1 个答案:

答案 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>