我是Vue.js的新手,我刚刚在这里阅读了有关条件渲染的文档(https://vuejs.org/v2/guide/conditional.html),但不知何故无法让它工作......
我的代码:
<button onclick="showTemplate()">Teste</button>
<template v-if="app">
<div id="app">
{{ message }}
</div>
</template>
function showTemplate(){
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
}
我希望模板标记仅在应用实例化后呈现。 我也试过这个代码的变体而没有成功。 有人可以帮忙吗?
答案 0 :(得分:2)
使用v-cloak。 v-cloak
的预期用途是隐藏Vue直到它被实例化。
function showTemplate() {
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
}
[v-cloak] {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script>
<button onclick="showTemplate()">Teste</button>
<div id="app" v-cloak>
{{ message }}
</div>
以下是检索数据时隐藏“加载”屏幕的方法。在这种情况下,该按钮将作为我们的加载屏幕。
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!',
loaded: false
},
methods: {
getData() {
setTimeout(() => this.loaded = true, 2000)
}
}
})
[v-cloak] {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script>
<div id="app" v-cloak>
<button v-if="!loaded" @click="getData">Get Data</button>
<div v-if="loaded">
{{ message }}
</div>
</div>
答案 1 :(得分:0)
尝试此操作并删除按钮。您不需要在函数中调用实例。
// put it on your index.html
<div id="app">
{{ message }}
</div>
// put it on your script make sure that you have already a CDN of vuejs.
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})