使用 v-if 在 Vue 中进行条件渲染
v-if
指令 允许您有条件地渲染一个块。 它不同于 v-show
在那里面 v-if
如果其表达式的计算结果为 false
。
const app = new Vue({
data: () => ({ render: false }),
template: `
<div>
<h1 v-if="render">Hello, World</h1>
</div>
`
});
// Vue will **not** render 'Hello, World' because the `v-if`
// expression evaluates to false.
const data = await renderToString(app);
// <div data-server-rendered="true"><!----></div>
data;
v-else-if
和 v-else
Vue 也有 v-else-if
和 v-else
指令 行为类似的 else if
和 else
在 JavaScript 中。
const app = new Vue({
data: () => ({ value: 1 }),
template: `
<div>
<div v-if="value > 0">Positive</div>
<div v-else-if="value < 0">Negative</div>
<div v-else>Zero</div>
</div>
`
});
let data = await renderToString(app);
// <div data-server-rendered="true"><div>Positive</div></div>
data;
app._data.value = -1;
data = await renderToString(app);
// <div data-server-rendered="true"><div>Negative</div></div>
data;
app._data.value = 0;
data = await renderToString(app);
// <div data-server-rendered="true"><div>Zero</div></div>
data;
生命周期挂钩
Vue 组件有生命周期钩子 ,比如 created
创建组件时调用的钩子,以及 mounted
当组件被安装时。
当 Vue 渲染一个组件时,因为 v-if
表达变成了 true,它触发了 created 和 mounted 的钩子。 例如, 下面的代码将打印两个 created 和 mounted,每次 display
更改为 true
从 false
。
Vue.component('test', {
created: function() {
console.log('Created!');
},
mounted: function() {
console.log('Mounted!');
},
template: '<h1>Hello World</h1>'
});
const app = new Vue({
data: () => ({ display: false }),
template: `
<div>
<test v-if="display"></test>
<div>
<button v-on:click="display = !display">Toggle</button>
</div>
</div>
`
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 使用 v-on 处理 Vue 事件
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论