v-if/v-show 条件渲染指令

v-if/v-show条件渲染指令

vue.js的条件指令v-if可根据表达式的值在DOM中渲染或销毁元素/组件。

    <div id="app">
        <p v-if="status === 1">当status为1时显示该行</p>
        <p v-else-if="status === 2">当status为2时显示该行</p>
        <p v-else>否则显示该行</p>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                status: 1
            }
        })
    </script>

如果一次判断的是多个元素,可以在vue.js内置的template元素上使用条件指令,最终渲染的结果不会包含该元素。

    <div id="app">
        <template v-if="status === 1">
            <p>1</p>
            <p>2</p>
            <p>3</p>
        </template>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                status: 1
            }
        })
    </script>

v-show是改变元素的CSS属性display,当v-show表达式的值为false时,元素会隐藏,查看dom结构会看到元素上加载了内联样式display:none;v-show不能在template上使用。

    <div id="app">
        <p v-show="status === 1">当status为1时显示该行</p>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                status: 2
            }
        })
    </script>

v-if与v-show的选择

v-if是真正的条件渲染,会根据表达式适当的销毁或重建元素及绑定的事件或子组件。
v-show是简单的CSS属性切换,无论条件真假都会被编译。
v-if适合条件不经常改变的场景,V-show适用于频繁切换条件。

vue
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!