条件渲染

v-if的用法

代码演示:

<head>
    <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性能更好;

结语

本小节到此结束,谢谢大家的观看!

如有问题欢迎各位指正