Vue指令之v-show指令和v-if指令


v-show指令

v-show指令是控制元素的display屬性判斷是否顯示的,當v-show的屬性值是true的時候,元素進行顯示,否則是不顯示

v-show是根據表達式的真假值切換元素的displayCSS屬性(根據表達式得出的布爾值進行判斷)

v-if指令

v-if是通過控制標簽是否存在於頁面上決定是否顯示的,當v-if的屬性值是true的時候,元素進行顯示,否則是不顯示

指令v-slse-if和指令v-else前面必須具有v-if才可以進行使用;並且在整個if語句中中間不能含有其他語句

v-if和v-show的差別是什么?

1.v-show通過控制標簽的display屬性來控制標簽是否顯示的.當為false時,設置為none,當為true,采用標簽原來的display屬性。

2.v-if通過控制標簽是否存在於dom中來控制標簽是否顯示

3.v-show有更高的初始化開銷,v-if有更高的切換開銷。

if系列指令:控制元素是否渲染

如果沒有被渲染,則對應的元素在瀏覽器審核元素中是找不到的

show系列指令:控制元素是否顯示

如果其值是true或者條件轉化成bool后等同於true的時候,則顯示對應的元素(display:block),否則隱藏對應的元素(display:none)

區別:

在流程上,渲染是優先於顯示的,也就是說元素如果要想被看到,應該先被渲染,然后才顯示。

如果對應的元素后期還想通過JavaScript進行邏輯控制,讓用戶能夠看到,則優先考慮v-show否則考慮v-if系列。

<body>
    <div id='app'>
        <!--使用指令v-show  -->
        <div v-show="show"> 這是通過Vue實例中的數據進行決定是否顯示 </div>
        <div v-show="isShow > 18">通過表達式進行判斷此元素是否顯示</div>
        <!-- 使用指令v-if判斷現在的時間段 -->
        <div v-if="time > 8 && time < 10">現在是8-10點</div>
        <div v-else-if="time >= 10 && time < 12">現在是10-12點</div>
        <div v-else-if="time >= 12 && time < 14">現在是12-14點</div>
        <div v-else-if="time >= 14 && time < 16">現在是14-16點</div>
        <div v-else>顯示是其他時間段</div>
    </div>
</body>
<script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
<script>
    new Vue({
        el: '#app',
        data: {
            show:true,
            isShow:10,
            time:13,
        },
    })
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM