条件渲染
v-if的用法
代码演示:
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vue条件渲染</title>
<!-- 使用CDN引入Vue -->
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="root"></div>
<script>
const app = Vue.createApp({
data(){
return {
content: 'Hello Vue.js!',
show: false
}
},
template:'<div v-if="show">{{content}}</div>'
})
const vm = app.mount('#root');
</script>
</body>
</html>
页面效果:
v-if、v-else的用法
代码演示:
const app = Vue.createApp({
data(){
return {
content: 'Hello Vue.js!',
show: false
}
},
template:`
<div v-if="show">{{content}}</div>
<div v-else>else</div>
`
})
const vm = app.mount('#root');
页面效果:
v-if、v-else-if、v-else的用法
代码演示:
const app = Vue.createApp({
data(){
return {
content: 'Hello Vue.js!',
show: false,
condition: true
}
},
template:`
<div v-if="show">{{content}}</div>
<div v-else-if="condition">elseif</div>
<div v-else>else</div>
`
})
const vm = app.mount('#root');
页面效果:
v-show的用法
代码演示:
const app = Vue.createApp({
data(){
return {
content: 'Hello Vue.js!',
show: true
}
},
template:`
<div v-show="show">{{content}}</div>
`
})
const vm = app.mount('#root');
页面效果:
v-if 和 v-show 的区别
代码演示:
const app = Vue.createApp({
data(){
return {
content: 'Hello Vue.js!',
show: true
}
},
template:`
<div v-if="show">{{content}}</div>
<div v-show="show">{{content}}</div>
<div v-if="!show">{{content}}</div>
<div v-show="!show">{{content}}</div>
`
})
// vm 代表vue 应用的根节点
const vm = app.mount('#root');
页面效果:
- 相同点:两种条件渲染方式的页面效果相同;
- 不同点:
- v-if条件不成立,会销毁DOM;
- v-show条件不成立,通过样式将DOM隐藏但DOM存在;
- 使用:在频繁使用时建议使用 v-show,它不用频繁创建、销毁DOM性能更好;
(完)