使用Vue?控制元素顯示隱藏的方法和區(qū)別
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、控制元素顯示隱藏的方法
1. v-if 和 v-else 指令
- 單獨(dú)使用 v-if,滿足條件顯示,反之隱藏
<template> <div v-if="a > 10"> Demo show </div> </template> <script> export default { data() { return { a:18 } } } </script> // 頁面顯示內(nèi)容 Demo show
- v-if 和 v-else 一起使用,滿足v-if中的條件就顯示有v-if判斷中的代碼內(nèi)容,反之則顯示 v-else中的內(nèi)容
<template> <div v-if="a > 20"> block A; </div> <div v-else> block B; </div> </template> <script> export default { data() { return { a: 18 } } } </script> // 頁面顯示內(nèi)容 block B;
2. 切換元素的CSS display屬性
- 用
v-show
指令
<template> <div v-show="a>10"> block A; </div> </template> <script> export default { data() { return { a: 18 } } } </script> // 頁面顯示內(nèi)容 block A;
- 設(shè)置元素的樣式 (
display:none
)
<template> <div class="hide"> block A; </div> </template> <style> .hide{ display: none; } </style>
3. opacity屬性
<template> <div class="hide"> block A; </div> </template> <style> .hide{ opacity: 0; } </style>
4. visibility屬性
<template> <div class="hide"> block A; </div> </template> <style> .hide{ visibility: hidden; //隱藏 visibility: visible; //顯示 } </style>
5. width和height屬性 (不建議使用)
<template> <div class="hide"> block A; </div> </template> <style> .hide{ width: 0; height: 0; overflow: hidden; //必須要有這個屬性才能隱藏 } </style>
二、區(qū)別
v-if
顯示隱藏是將dom元素整個添加或刪除
;v-show
隱藏是為該元素添加css–display:none,dom元素依舊還在
,但是不占任何的位置;opacity
是將元素的透明度設(shè)置為0
,visibility: hidden
是將元素隱藏,dom元素依舊還在,在網(wǎng)頁中該占的位置還是占著.
三. 注意事項(xiàng)
- 有v-if的地方不一定有v-else,有v-else同級元素中必有v-if;
- v-if和v-else配合使用必須在同一級,不能存在不同級;
// 正確示例 <div> <div v-if="a > 0"> block A; </div> <div v-else> block B; </div> </div> // 錯誤示例 <div> <div v-if="a > 0"> block A; <div v-else> block B; </div> </div> </div>
- v-if有更高的
切換消耗
; - v-show有更高的
初始渲染消耗
; - 如果需要
頻繁切換則用v-show
,反之則用v-if.
補(bǔ)充知識點(diǎn):
vue 控制元素的顯示和隱藏
方法:
- 使用 v-if 指令,通過動態(tài)的向DOM樹內(nèi)添加或者刪除DOM元素的方式來顯示或隱藏元素;
- 使用 v-show 指令,通過設(shè)置DOM元素的display樣式屬性來控制顯隱。
v-if 指令與 v-show 指令都可以根據(jù)值動態(tài)控制DOM元素顯示隱藏,
v-if 和 v-show 屬于Vue的內(nèi)部常用的指令,指令的職責(zé)是當(dāng)表達(dá)式的值改變時把某些特殊的行為應(yīng)用到DOM上。
v-if 會直接刪除元素v-show 只是隱藏,只是簡單地切換元素的 CSS 屬性display。
v-show 示例:
比如想要 隱藏 下面這個 按鈕 那么給這個 div 加一個 v-show 的屬性,名字我寫的showButton,
<div v-show="showButton"> <Button>按鈕</Button> </div>
然后在 js 代碼中 設(shè)置 showButton 的默認(rèn)值為 false ,就是剛啟動的時候,默認(rèn)是不顯示的,
后面如果想要 顯示 這個 按鈕 ,就直接設(shè)置 showButton 為 true 就好了
到此這篇關(guān)于Vue 控制元素顯示隱藏的方法和區(qū)別的文章就介紹到這了,更多相關(guān)Vue 控制元素顯示隱藏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章搞懂Vue3中如何使用ref獲取元素節(jié)點(diǎn)
過去在Vue2中,我們采用ref來獲取標(biāo)簽的信息,用以替代傳統(tǒng) js 中的 DOM 行為,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章搞懂Vue3中如何使用ref獲取元素節(jié)點(diǎn)的相關(guān)資料,需要的朋友可以參考下2022-11-11Vue?使用?ElementUi?el-upload?手動上傳文件限制上傳文件類型大小同名等進(jìn)行限制
個人在做文件上傳功能的時候,踩過不少的坑,特在此記錄下,本文介紹Vue使用?ElementUi?el-upload?手動上傳文件限制上傳文件類型大小同名等進(jìn)行限制問題,感興趣的朋友一起看看吧2024-02-02vue實(shí)戰(zhàn)中的一些實(shí)用小魔法匯總
這篇文章主要給大家介紹了關(guān)于vue實(shí)戰(zhàn)中一些實(shí)用小魔法的相關(guān)資料,這些技巧和竅門,可以幫助你成為更好的Vue開發(fā)人員,需要的朋友可以參考下2021-06-06Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能
這篇文章主要介紹了Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能,本文通過一個小例子給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12Vue實(shí)現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解
這篇文章主要介紹了使用Vue實(shí)現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06vue項(xiàng)目實(shí)戰(zhàn)之圓柱狀水波效果實(shí)現(xiàn)
最近工作中實(shí)現(xiàn)的一個效果不錯,分享給大家,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)戰(zhàn)之圓柱狀水波效果實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12vue中table多選/單選行,獲取其數(shù)據(jù)方式
這篇文章主要介紹了vue中table多選/單選行,獲取其數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07解決VUE項(xiàng)目在IIS部署出現(xiàn):Uncaught SyntaxError: Unexpected&n
這篇文章介紹了解決VUE項(xiàng)目在IIS部署出現(xiàn):Uncaught SyntaxError: Unexpected token < 報(bào)錯的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04使用Bootstrap4 + Vue2實(shí)現(xiàn)分頁查詢的示例代碼
本篇文章主要介紹了使用Bootstrap4 + Vue2實(shí)現(xiàn)分頁查詢的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12