v-if触发什么东西? v-if会举起活动吗?

时间:2017-07-03 08:39:20

标签: vue.js vuejs2

我想抓住一个事件并在v-if切换时做一些事情。有条件渲染的元素正在渲染。应该可以得到通知,不是吗?

3 个答案:

答案 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是一个表明它有效的小提琴。