【发布时间】:2019-02-20 12:12:27
【问题描述】:
我在App.vue中有以下内容
<template>
<div id="app">
<input type="text" v-model="term">
<hello-world text="Button 1" v-if="term === ''"></hello-world>
<hello-world v-else text="Button 2"></hello-world>
</div>
</template>
<script>
import HelloWorld from '@/components/HelloWorld'
export default {
name: 'app',
data() {
return {
term: ''
}
},
components: {
HelloWorld
}
}
</script>
这是HelloWorld.vue:
<template>
<div>
<button>{{ text }}</button>
</div>
</template>
<script>
export default {
props: {
text: String
},
created() {
console.log('Created')
},
destroyed() {
console.log('Destroyed')
}
}
</script>
所以,当我输入内容时,第一个组件应该被销毁,而第二个组件应该被创建。但是,不会发生这样的事情。组件既不会被销毁也不会被创建。
好像v-if 没有触发created() & destroyed() 函数。请帮我解决这个问题。
【问题讨论】:
-
您可以尝试使用
mounted()挂钩,而只使用v-if="term"吗?
标签: javascript vue.js components