欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端必知必會之Vue?v-if指令詳解

 更新時間:2025年02月19日 11:01:05   作者:編程歲月  
這篇文章主要介紹了前端必知必會之Vue?v-if指令的相關(guān)資料,Vue中的條件渲染指令v-if、v-else-if和v-else用于根據(jù)條件動態(tài)創(chuàng)建HTML元素,通過使用比較運算符和邏輯運算符,可以編寫復(fù)雜的條件邏輯,需要的朋友可以參考下

Vue v-if 指令

使用 v-if 指令在 Vue 中根據(jù)條件創(chuàng)建 HTML 元素比使用純 JavaScript 要容易得多。

使用 Vue,您只需在要有條件創(chuàng)建的 HTML 元素中直接編寫 if 語句即可。就這么簡單。

Vue 中的條件渲染

Vue 中的條件渲染是通過使用 v-if、v-else-if 和 v-else 指令完成的。

條件渲染是指僅當(dāng)條件為真時才創(chuàng)建 HTML 元素,即如果變量為“true”,則創(chuàng)建文本“有貨”,如果變量為“false”,則創(chuàng)建文本“無貨”。

示例

根據(jù)是否有任何打字機存貨編寫不同的消息:

<p v-if="typewritersInStock">
有貨
</p>

<p v-else>
缺貨
</p>

Vue 中的條件

條件或“if 語句”是真或假的內(nèi)容。

條件通常是兩個值之間的比較檢查,如上例所示,以查看一個值是否大于另一個值。

我們使用比較運算符(如 <、>= 或 !==)進行此類檢查。

比較檢查還可以與邏輯運算符(如 && 或 ||)結(jié)合使用。

我們可以使用存儲中的打字機數(shù)量和比較檢查來決定它們是否有貨:

示例

使用比較檢查根據(jù)存儲中的打字機數(shù)量決定是否寫入“有貨”或“缺貨”。

<p v-if="typewriterCount > 0">
有貨
</p>

<p v-else>
缺貨
</p>

條件渲染指令

指令詳情
v-if可以單獨使用,也可以與 v-else-if 和/或 v-else 一起使用。如果 v-if 中的條件為“真”,則不考慮 v-else-if 或 v-else。
v-else-if必須在 v-if 或另一個 v-else-if 之后使用。如果 v-else-if 中的條件為“真”,則不考慮后面的 v-else-if 或 v-else。
v-else如果 if 語句的第一部分為假,則會發(fā)生此部分。必須放在 if 語句的最末尾,在 v-if 和 v-else-if 之后。

要查看包含上述所有三個指令的示例,我們可以使用 v-else-if 擴展前面的示例,以便用戶看到“有貨”、“剩余很少!”或“缺貨”:

示例

使用比較檢查來決定是否根據(jù)存儲中的打字機數(shù)量寫入“有貨”、“剩余很少!”或“缺貨”。

<p v-if="typewriterCount>3">
有貨
</p>

<p v-else-if="typewriterCount>0">
剩余很少!
</p>

<p v-else>
缺貨
</p>

使用函數(shù)的返回值

我們可以使用函數(shù)的“true”或“false”返回值,而不是使用 v-if 指令的比較檢查:

示例

如果某個文本包含單詞“pizza”,則創(chuàng)建一個帶有適當(dāng)消息的 <p> 標(biāo)簽。 ‘includes()’ 方法是一種原生 JavaScript 方法,用于檢查文本是否包含某些單詞。

<div id="app">
<p v-if="text.includes('pizza')">文本包含單詞 'pizza'</p>
<p v-else>文本中未找到單詞 'pizza'</p>
</div>
data() {
return {
text: '我喜歡炸玉米餅、披薩、泰式牛肉沙拉、河粉湯和塔吉鍋。'
}
}

上述示例可以擴展,以顯示 v-if 還可以創(chuàng)建其他標(biāo)簽,如 <div> 和 <img> 標(biāo)簽:

示例

如果某個文本包含單詞 ‘pizza’,則創(chuàng)建一個帶有披薩圖像的 <div> 標(biāo)簽和一個帶有消息的 <p> 標(biāo)簽。‘includes()’ 方法是一種原生 JavaScript 方法,用于檢查文本是否包含某些單詞。

<div id="app">
<div v-if="text.includes('pizza')">
<p>文本中包含單詞“pizza”</p>
<img src="img_pizza.svg">
</div>
<p v-else>文本中未找到單詞“pizza”</p>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
data() {
return {
text: '我喜歡 taco、披薩、泰式牛肉沙拉、河粉湯和塔吉鍋。'
}
}
})
app.mount('#app')
</script>

下面的示例進一步擴展。

示例

如果某個文本包含單詞“pizza”或“burrito”或者不包含這些單詞,則會創(chuàng)建不同的圖像和文本。

<div id="app">
<div v-if="text.includes('pizza')">
<p>文本中包含單詞“pizza”</p>
<img src="img_pizza.svg">
</div>
<div v-else-if="text.includes('burrito')">
<p>文本中包含單詞“burrito”,但不包含“pizza”</p>
<img src="img_burrito.svg">
</div>
<p v-else>文本中未找到單詞“pizza”或“burrito”</p>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
data() {
return {
text: '我喜歡 taco、披薩、泰式牛肉沙拉、越南河粉湯和塔吉鍋。'
}
}
})
app.mount('#app')
</script>

使用 Vue,我們現(xiàn)在可以編寫在特定條件下創(chuàng)建元素的代碼,比使用傳統(tǒng) JavaScript 更容易。

為什么v-for優(yōu)先級更高?

Vue的設(shè)計者選擇讓 v-for 的優(yōu)先級高于 v-if,主要是為了符合直觀的邏輯和性能優(yōu)化的需要:

  • 邏輯直觀v-for 用于生成列表,而 v-if 用于條件篩選。先生成列表,再篩選符合條件的項,這種順序更符合人類的思維習(xí)慣。

  • 性能優(yōu)化:如果先執(zhí)行 v-if,可能會導(dǎo)致不必要的循環(huán)計算,因為 v-if 的條件可能依賴于循環(huán)變量,而循環(huán)變量在 v-for 執(zhí)行后才可用。

總結(jié)

到此這篇關(guān)于前端必知必會之Vue v-if指令詳解的文章就介紹到這了,更多相關(guān)Vue v-if指令詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue 如何追蹤數(shù)據(jù)變化

    Vue 如何追蹤數(shù)據(jù)變化

    這篇文章主要介紹了Vue 如何追蹤數(shù)據(jù)變化,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • vue使用element ui自定義手機驗證規(guī)則問題

    vue使用element ui自定義手機驗證規(guī)則問題

    這篇文章主要介紹了vue使用element ui自定義手機驗證規(guī)則問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細(xì)教程

    vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細(xì)教程

    這篇文章主要介紹了vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細(xì)教程,其中聲明式router-link實現(xiàn)跳轉(zhuǎn)最簡單的方法,可用組件router-link來替代a標(biāo)簽,每種方式給大家講解的非常詳細(xì)需要的朋友可以參考下
    2022-11-11
  • Vue?事件中的?.native你搞明白了嗎

    Vue?事件中的?.native你搞明白了嗎

    .native主要是給自定義的組件添加原生事件,可以理解為該修飾符的作用就是把一個vue組件轉(zhuǎn)化為一個普通的HTML標(biāo)簽,并且該修飾符對普通HTML標(biāo)簽是沒有任何作用的,這篇文章主要介紹了vue?事件中的?.native你搞清楚了嗎,需要的朋友可以參考下
    2023-02-02
  • 關(guān)于vue組件事件屬性穿透詳解

    關(guān)于vue組件事件屬性穿透詳解

    今天小編就為大家分享一篇關(guān)于vue組件事件屬性穿透詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 基于Vue+elementUI實現(xiàn)動態(tài)表單的校驗功能(根據(jù)條件動態(tài)切換校驗格式)

    基于Vue+elementUI實現(xiàn)動態(tài)表單的校驗功能(根據(jù)條件動態(tài)切換校驗格式)

    這篇文章主要介紹了Vue+elementUI的動態(tài)表單的校驗(根據(jù)條件動態(tài)切換校驗格式),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • vue-router之nuxt動態(tài)路由設(shè)置的兩種方法小結(jié)

    vue-router之nuxt動態(tài)路由設(shè)置的兩種方法小結(jié)

    今天小編就為大家分享一篇vue-router之nuxt動態(tài)路由設(shè)置的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 派發(fā)器抽離vue2單組件中的大量邏輯技巧

    派發(fā)器抽離vue2單組件中的大量邏輯技巧

    這篇文章主要為大家介紹了派發(fā)器抽離vue2單組件中的大量邏輯技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 基于WebRTC實現(xiàn)音視頻通話功能

    基于WebRTC實現(xiàn)音視頻通話功能

    WebRTC作為一種開放標(biāo)準(zhǔn)的實時通信協(xié)議,能輕松實現(xiàn)瀏覽器之間的實時音視頻通信,本次主要分享基于WebRTC的音視頻通話技術(shù),講解WebRTC原理和音視頻傳輸?shù)汝P(guān)鍵概念,通過案例實踐,帶大家掌握如何搭建一個音視頻通話應(yīng)用,需要的朋友可以參考下
    2024-05-05
  • vuex刷新后數(shù)據(jù)丟失的解決方法

    vuex刷新后數(shù)據(jù)丟失的解決方法

    這篇文章主要給大家介紹了關(guān)于vuex刷新后數(shù)據(jù)丟失的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評論