關(guān)于Vue開發(fā)中v-if和v-show的聯(lián)合使用步驟
v-if和v-show的聯(lián)合使用
最近做了一個需求,里面有個功能是彈窗里面有步驟一,然后確定,跳到步驟二,然后點擊上一步還可以返回步驟一頁面,并且保留步驟一之前的的操作


然后我的思路就是:里面兩個子組件,步驟一組件,步驟二組件。然后v-if顯示隱藏。

但實際寫好之后發(fā)現(xiàn),步驟二返回上一步的時候,因為使用的是v-if,所以數(shù)據(jù)全部重置了,沒有保留之前的操作,所以不符合需求
但幸好步驟一里面的東西不多。
方法一(有瑕疵):
一種解決方法是跳到步驟二的時候,先保留步驟一的所有數(shù)據(jù),然后傳給步驟二,然后步驟二點擊上一步的時候再傳給步驟一,這種也可以,但確定是要是步驟一里面有很多數(shù)據(jù)的話,就很繁瑣,而且容易忘記傳一些數(shù)據(jù)。
我想了想,可以使用v-show,因為v-show只是css的顯示隱藏,不會觸發(fā)數(shù)據(jù)重置,可以保留數(shù)據(jù)

但又發(fā)現(xiàn)v-show并不會觸發(fā)mounted里的計算,還需要加上v-if,最終是這樣的
方法二:v-if和v-show一起使用

首先,初始step是0,步驟一和步驟二v-if都是false;
然后當(dāng)step為1的時候,v-if為true,v-show為true,步驟一顯示,且觸發(fā)mounted里面的運算,獲取數(shù)據(jù),重置數(shù)據(jù);
然后操作之后點擊下一步,step為2,步驟一的v-if為true,v-show為false,步驟一的css隱藏,但是數(shù)據(jù)操作還是保留著,步驟二顯示。
然后點擊上一步,step為1,步驟二隱藏,步驟一的v-if還是true,v-show也是true,因為v-if一直都是true,所以不會觸發(fā)mounted里面的運算,只是單純的dom的顯示隱藏,數(shù)據(jù)也保留著
對比兩種方法,還是方法二好一些,簡單實用
補充:Vue之 v-if 和 v-show 的使用
Vue之 v-if 和 v-show 的使用
v-if 和 v-show 都能控制元素的隱藏和顯示。
一般來說,v-if 有更高的切換消耗而 v-show 有更高的初始渲染消耗。因此,如果需要頻繁切換 v-show 較好,如果在運行時條件不大可能改變 則v-if 較好。
v-if 的特點:每次都會重新刪除或創(chuàng)建元素。
v-show 的特點:每次不會重新進行DOM的刪除和創(chuàng)建操作,只是切換了元素的display:none 樣式。
下面是一個使用 v-if 和 v-show 的例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id='app'>
<input type="button" @click="flag=!flag" value="toggle"/>
<!-- v-if的特點:每次都會重新刪除或創(chuàng)建元素 -->
<!-- v-show的特點: 每次不會重新進行DOM的刪除和創(chuàng)建操作,只是切換了元素的display:none 樣式-->
<!-- v-if有較高的切換性能消耗 -->
<!-- v-show有較高的初始渲染消耗 -->
<!-- 如果元素涉及到頻繁的切換,最好不要使用v-if,推薦使用v-show -->
<!-- 如果元素可能永遠也不會被顯示出來讓用戶看到,則推薦使用v-if -->
<h3 v-if="flag">這是用v-if控制的元素</h3>
<h3 v-show="flag">這是用v-show控制的元素</h3>
</div>
</body>
<script src="vue.min.js"></script>
<script>
var vm = new Vue({
el:'#app',
data:{
flag:true,
}
});
</script>
</html>到此這篇關(guān)于關(guān)于Vue開發(fā)中v-if和v-show的聯(lián)合使用步驟的文章就介紹到這了,更多相關(guān)vue v-if和v-show使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用生成條形碼并打印和vue-print-nb以及報錯問題的解決
在TypeScript項目中,正確安裝vue3-print-nb并配置env.d.ts聲明模塊,添加tsconfig.json的include路徑,確保全局掛載以實現(xiàn)條形碼和批量打印功能2025-07-07
vue中created、watch和computed的執(zhí)行順序詳解
由于vue的雙向數(shù)據(jù)綁定,自動更新數(shù)據(jù)的機制,在數(shù)據(jù)變化后,對此數(shù)據(jù)依賴?的所有數(shù)據(jù),watch事件都會被更新、觸發(fā),下面這篇文章主要給大家介紹了關(guān)于vue中created、watch和computed的執(zhí)行順序,需要的朋友可以參考下2022-11-11
Vue 報錯Error: No PostCSS Config foun
這篇文章主要介紹了Vue 報錯Error: No PostCSS Config found問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vue.js中for循環(huán)如何實現(xiàn)異步方法同步執(zhí)行
這篇文章主要介紹了vue.js中for循環(huán)如何實現(xiàn)異步方法同步執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
vxe-table?實現(xiàn)按回車鍵自動新增一行(示例代碼)
本文通過示例代碼介紹了vxe-table新版本中實現(xiàn)回車自動換行功能的方法,通過設(shè)置keyboard-config.isLastEnterAppendRow參數(shù)可以控制是否開啟該功能,當(dāng)回車鍵在最后一行按下時,會自動新增一行,并將光標(biāo)移動到新行,代碼簡單易懂,感興趣的朋友跟隨小編一起看看吧2024-12-12
Vue2.0使用嵌套路由實現(xiàn)頁面內(nèi)容切換/公用一級菜單控制頁面內(nèi)容切換(推薦)
這篇文章主要介紹了Vue2.0使用嵌套路由實現(xiàn)頁面內(nèi)容切換/公用一級菜單控制頁面內(nèi)容切換,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
elementui之el-table如何通過v-if控制按鈕顯示與隱藏
這篇文章主要介紹了elementui之el-table如何通過v-if控制按鈕顯示與隱藏問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

