最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue 條件渲染v-if和v-show

 更新時間:2021年10月26日 17:06:36   作者:Silent丿丶黑羽  
這篇文章主要介紹了vue 條件渲染v-if和v-show,在模板中,可以根據(jù)條件進行渲染。條件用到的是v-if、v-else-if以及v-else來組合實現(xiàn)的,有時候我們想要在一個條件中加載多個html元素,那么我們可以通過template元素上實現(xiàn),下面就來看看具體實現(xiàn)吧

1、v-if

在模板中,可以根據(jù)條件進行渲染。條件用到的是v-ifv-else-if以及v-else來組合實現(xiàn)的。

示例代碼如下:

<div id="app">
    <p v-if="weather == 'sun'">今天去公園玩!</p>
    <p v-else-if="weather == 'rain'">今天去看電影!</p>
    <p v-else>今天哪兒也不去!</p>
</div>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            weather: 'sun'
        }
    });
</script>
 

2、在<template>上使用v-if

有時候我們想要在一個條件中加載多個html元素,那么我們可以通過template元素上實現(xiàn)。

示例代碼如下:

<div id="app">
    <template v-if="age<18">
        <p>數(shù)學多少分?</p>
        <p>英語多少分?</p>
    </template>
    <template v-else-if="age>=18 && age<25">
        <p>結(jié)婚了嗎?</p>
        <p>考研究生了嗎?</p>
    </template>
    <template v-else>
        <p>加薪了嗎?</p>
        <p>工資多少?</p>
    </template>
</div>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            age: 24
        }
    });
</script>
 

3、用 key 管理可復用的元素

另外,在模板中,Vue會盡量重用已有的元素,而不是重新渲染,這樣可以變得更加高效。

如果我們允許用戶在不同的登錄方式之間切換:

<div id="app">
  <template v-if="loginType === 'username'">
    <label for="username">用戶名:</label>
    <input type="text" id="username" name="username" placeholder="用戶名">
  </template>
  <template v-else>
    <label for="email">Email</label>
    <input type="text" id="email" name="email" placeholder="郵箱">
  </template>
  <div>
    <button @click="changeLoginType">切換登錄類型</button>
  </div>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      loginType: "username"
    },
    methods: {
      changeLoginType(){
        // 如果類型為username,則切換成email,否則反之
        this.loginType = this.loginType==="username"?"email":"username";
      }
    }
  })
</script>

接下來我們查看下效果圖:

這個里面會有一個問題,就是如果我在username的輸入框中輸入完信息,切換到郵箱中,之前的信息還是保留下來,這樣肯定不符合需求的,如果我們想要讓html元素每次切換的時候都重新渲染一遍,可以在需要重新渲染的元素上加上唯一的key屬性,其中key屬性推薦使用整形,字符串類型。

示例代碼如下:

<div id="app">
  <template v-if="loginType === 'username'">
    <label for="username">用戶名:</label>
    <input type="text" id="username" name="username" placeholder="用戶名" key="username">
  </template>
  <template v-else>
    <label for="email">Email</label>
    <input type="text" id="email" name="email" placeholder="郵箱" key="email">
  </template>
  <div>
    <button @click="changeLoginType">切換登錄類型</button>
  </div>
</div>

我們可以看到用戶名原來輸入的123切換到郵箱方式時,輸入框中的123不見了

注意: <label>元素仍然會被高效地復用,因為它們沒有添加key屬性。

4、v-show

另一個用于根據(jù)條件展示元素的選項是 v-show 指令。用法大致一樣:

<h1 v-show="ok">Hello!</h1>


不同的是帶有 v-show 的元素始終會被渲染并保留在 DOM 中。v-show 只是簡單地切換元素的 CSS property display

注意:v-show 不支持 <template> 元素,也不支持 v-else。

4.1 v-if 對比 v-show

v-if 是“真正”的條件渲染,因為它會確保在切換過程中條件塊內(nèi)的事件監(jiān)聽器和子組件適當?shù)乇讳N毀和重建。

v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變?yōu)檎鏁r,才會開始渲染條件塊。

相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。

一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件很少改變,則使用 v-if 較好。

到此這篇關于vue 條件渲染v-if和v-show的文章就介紹到這了,更多相關vue 條件渲染內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue 動態(tài)設置瀏覽器標題的方法詳解

    vue 動態(tài)設置瀏覽器標題的方法詳解

    這篇文章主要為大家介紹了vue動態(tài)設置瀏覽器標題的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 淺談父子組件傳值問題

    淺談父子組件傳值問題

    這篇文章主要介紹了Vue父子組件傳值問題,文章中有詳細的示例代碼,感興趣的同學可以參考閱讀
    2023-04-04
  • VUE3+vite項目中動態(tài)引入組件與異步組件的詳細實例

    VUE3+vite項目中動態(tài)引入組件與異步組件的詳細實例

    在做vue3項目中時,每次使用都需要先進行引入,下面這篇文章主要給大家介紹了關于VUE3+vite項目中動態(tài)引入組件與異步組件的相關資料,需要的朋友可以參考下
    2022-09-09
  • vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    同一個瀏覽器登錄不同賬號session一致,這就導致后面登錄的用戶數(shù)據(jù)會把前面登錄的用戶數(shù)據(jù)覆蓋掉,這個問題很常見,當前我這邊解決的就是同一個瀏覽器不同窗口只能登錄一個用戶,對vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方法感興趣的朋友一起看看吧
    2024-01-01
  • Vue.js如何監(jiān)聽window窗口尺寸變化

    Vue.js如何監(jiān)聽window窗口尺寸變化

    使用VUE開發(fā)后臺項目,后臺項目需要進行后臺根據(jù)瀏覽器窗口進行變化,需要使用vue來監(jiān)聽瀏覽器的窗口變化,這篇文章主要給大家介紹了關于Vue.js如何監(jiān)聽window窗口尺寸變化的相關資料,需要的朋友可以參考下
    2023-11-11
  • element-ui圖像組件、上傳組件以及分頁組件實現(xiàn)代碼

    element-ui圖像組件、上傳組件以及分頁組件實現(xiàn)代碼

    工作中碰到需要多圖上傳,在使用element-ui解決過程中碰到一些問題,在這里分享給大家,這篇文章主要給大家介紹了關于element-ui圖像組件、上傳組件以及分頁組件實現(xiàn)的相關資料,需要的朋友可以參考下
    2024-02-02
  • 使用Vue自定義數(shù)字鍵盤組件(體驗度極好)

    使用Vue自定義數(shù)字鍵盤組件(體驗度極好)

    最近做 Vue 開發(fā),因為有不少頁面涉及到金額輸入,產(chǎn)品老是覺得用原生的 input 進行金額輸入的話 體驗很不好,于是自己動手寫了一個使用Vue自定義數(shù)字鍵盤組件,具體實現(xiàn)代碼大家參考下本文
    2017-12-12
  • Vue之定義全局工具類問題

    Vue之定義全局工具類問題

    這篇文章主要介紹了Vue之定義全局工具類問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用vue-route 的 beforeEach 實現(xiàn)導航守衛(wèi)(路由跳轉(zhuǎn)前驗證登錄)功能

    使用vue-route 的 beforeEach 實現(xiàn)導航守衛(wèi)(路由跳轉(zhuǎn)前驗證登錄)功能

    在網(wǎng)站中普遍會遇到這樣的需求,路由跳轉(zhuǎn)前做一些驗證,比如登錄驗證(未登錄去登錄頁)。下面腳本之家小編給大家?guī)砹耸褂胿ue-route 的 beforeEach 實現(xiàn)導航守衛(wèi)(路由跳轉(zhuǎn)前驗證登錄)功能,感興趣的朋友一起看看吧
    2018-03-03
  • vue引入js數(shù)字小鍵盤的實現(xiàn)代碼

    vue引入js數(shù)字小鍵盤的實現(xiàn)代碼

    這篇文章主要介紹了vue引入js數(shù)字小鍵盤的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-05-05

最新評論

新余市| 普兰县| 西吉县| 开封市| 郧西县| 东至县| 江陵县| 漠河县| 东海县| 大田县| 鹿泉市| 湄潭县| 石狮市| 财经| 惠水县| 保靖县| 云霄县| 新疆| 雷山县| 鸡西市| 乐亭县| 衡山县| 鄂温| 凤凰县| 永靖县| 逊克县| 扶绥县| 临汾市| 汉寿县| 金塔县| 河南省| 江孜县| 鹿泉市| 金湖县| 瑞昌市| 施甸县| 称多县| 翼城县| 太和县| 栾川县| 固始县|