我想抓住一个事件并在v-if切换时做一些事情。有条件渲染的元素正在渲染。应该可以得到通知,不是吗?
答案 0 :(得分:5)
您可以在属性上设置watcher,该属性负责条件渲染(v-if
)的真实性。
<强> HTML 强>
<div id="app">
<div v-if="toggleElement">MY ELEMENT</div>
<button @click="toggleElement = !toggleElement">TOGGLE</button>
</div>
<强>脚本强>
new Vue({
el: '#app',
data: {
toggleElement: false
},
watch: {
toggleElement(newValue){
//do something if toggleElement changes
alert("Element's v-if toggled");
}
}
})
以下是fiddle
答案 1 :(得分:1)
如果它将应用于组件,它将触发mounted
。
因此,如果在您的父母中,您将拥有:
<template>
<div>
<child v-if='test'/>
</div>
</template>
当测试更改时,您将触发孩子的mounted
。
答案 2 :(得分:1)
您可以通过直接从v-if开关表达式调用某些内容来执行此操作。你的开关表达式不再是纯粹的功能,我不确定我是否有良心,但它有效。所以......
<div v-if='mySwitch && doSomething()'>
Here是一个表明它有效的小提琴。