關(guān)于element Drawer抽屜的使用
element Drawer 抽屜的使用
之前沒(méi)有這個(gè)組件的時(shí)候是直接把dialog的樣式改了,改成了側(cè)彈窗的形式,element升級(jí)后就改成了Drawer 抽屜組件。
場(chǎng)景
Drawer 的關(guān)閉動(dòng)畫(huà)沒(méi)有了。
代碼如下:
<el-drawer title="我是標(biāo)題" v-if="drawer" :visible.sync="drawer" :before-close="handleClose"> <span>我來(lái)啦!</span> </el-drawer>
<script> export default { data() { return { drawer: false, direction: 'rtl', }; }, methods: { handleClose(done) { //使用before-close會(huì)暫停 Drawer 的關(guān)閉 this.$confirm('確認(rèn)關(guān)閉?') .then(_ => { done(); }) .catch(_ => {}); } } }; </script>
原因:使用了v-if控制Drawer 的顯示
解決:去掉v-if,但是去掉v-if之后,drawer就和app同級(jí)了,樣式包裹在頁(yè)面的class里就沒(méi)用
visible.sync和v-if、v-show
visible.sync:雙向綁定值。
- 初始情況下通過(guò)該值控制 dialog顯示。dialog關(guān)閉的時(shí)候,element自動(dòng)設(shè)置該值為false。
- 當(dāng)子組件執(zhí)行 close 事件的時(shí)候,不僅改變了自己內(nèi)部的 isShow 的值,而且還將 父組件的 visible的狀態(tài)發(fā)生了改變.
v-if 指令用于條件性地渲染一塊內(nèi)容。
- 這塊內(nèi)容只會(huì)在指令的表達(dá)式返回 truthy 值的時(shí)候被渲染。
- v-if 是“真正”的條件渲染,因?yàn)樗鼤?huì)確保在切換過(guò)程中條件塊內(nèi)的事件監(jiān)聽(tīng)器和子組件適當(dāng)?shù)乇讳N(xiāo)毀和重建。
- v-if 也是惰性的:如果在初始渲染時(shí)條件為假,則什么也不做——直到條件第一次變?yōu)檎鏁r(shí),才會(huì)開(kāi)始渲染條件塊。
v-show 就簡(jiǎn)單得多
- 不管初始條件是什么,元素總是會(huì)被渲染,并且只是簡(jiǎn)單地基于 CSS 進(jìn)行切換。
- 一般來(lái)說(shuō),v-if 有更高的切換開(kāi)銷(xiāo),而 v-show 有更高的初始渲染開(kāi)銷(xiāo)。
visible.sync和v-if、v-show的使用場(chǎng)景
- 如果需要非常頻繁地切換,則使用 v-show 較好;如果在運(yùn)行時(shí)條件很少改變,則使用 v-if 較好。但是父子組件,在子組件 close 方法中,雖然已經(jīng)將 isShow 改變?yōu)?false,但是并沒(méi)有通知到 父組件,而在父組件中,控制彈出框的現(xiàn)實(shí)和隱藏是通過(guò) show 。點(diǎn)擊子組件的關(guān)閉按鈕時(shí),父組件的 show 沒(méi)有發(fā)生改變,這時(shí)候需要用visible.sync。
- Vue 會(huì)盡可能高效地渲染元素,通常會(huì)復(fù)用已有元素而不是從頭開(kāi)始渲染。因此,想要重新渲染可以添加一個(gè)具有唯一值的 key 屬性
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue 實(shí)現(xiàn)一個(gè)命令式彈窗組件功能
這篇文章主要介紹了vue實(shí)現(xiàn)命令式彈窗組件功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Vue獲取HTMLCollection列表的children時(shí)結(jié)果為undefined問(wèn)題
這篇文章主要介紹了Vue獲取HTMLCollection列表的children時(shí)結(jié)果為undefined問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03100行代碼實(shí)現(xiàn)vue表單校驗(yàn)功能(小白自編)
這篇文章主要介紹了使用100行代碼實(shí)現(xiàn)vue表單校驗(yàn)功能,本文通過(guò)實(shí)例截圖給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Vue.js 中取得后臺(tái)原生HTML字符串 原樣顯示問(wèn)題的解決方法
這篇文章主要介紹了VUE.js 中取得后臺(tái)原生HTML字符串 原樣顯示問(wèn)題 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06vue監(jiān)聽(tīng)用戶(hù)輸入和點(diǎn)擊功能
這篇文章主要為大家詳細(xì)介紹了vue監(jiān)聽(tīng)用戶(hù)輸入和點(diǎn)擊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09解決iView Table組件寬度只變大不變小的問(wèn)題
這篇文章主要介紹了解決iView Table組件寬度只變大不變小的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Vue+Element?UI實(shí)現(xiàn)復(fù)制當(dāng)前行數(shù)據(jù)的功能
這篇文章主要介紹了如何使用Vue?+?Element?UI?實(shí)現(xiàn)在列表的操作欄新增一個(gè)復(fù)制按鈕,復(fù)制當(dāng)前行的數(shù)據(jù)可以打開(kāi)新增彈窗后亦可以跳轉(zhuǎn)到新增頁(yè)面,感興趣的小伙伴可以參考下2023-11-11vue路由守衛(wèi)+登錄態(tài)管理實(shí)例分析
這篇文章主要介紹了vue路由守衛(wèi)+登錄態(tài)管理,結(jié)合實(shí)例形式分析了vue路由守衛(wèi)與登錄態(tài)管理相關(guān)操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05后臺(tái)使用freeMarker和前端使用vue的方法及遇到的問(wèn)題
這篇文章主要介紹了后臺(tái)使用freeMarker和前端使用vue的方法及遇到的問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06