2017-07-03 12 views

答えて

4

条件付きレンダリングの真実性を担うプロパティ(v-if)にwatcherを設定できます。

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

正解です。 'v-if'の条件が単純な性質ではなくより複雑な式であれば、それをテンプレートではなく計算された特性に置き、計算された特性を観察します。 –

1

コンポーネントに適用される場合は、mountedがトリガーされます。だから、

あなたの親にあなたが持っているならば:

<template> 
<div> 
<child v-if='test'/> 
</div> 
</template> 

テストが変更された場合、あなたは子供のmountedを誘発するだろうし。

0

これは、v-ifスイッチ式から何かを直接呼び出すことで実行できます。あなたのスイッチ式はもはや純粋な関数ではなく、私は純粋な良心を持っているかどうかはわかりませんが、うまくいきます。だから... ...

<div v-if='mySwitch && doSomething()'> 

Hereは、それが働いて示しフィドルです。

関連する問題