Element框架el-tab點擊標簽頁時再渲染問題的解決
之前一直以為這種標簽頁加載時要么同時渲染,加載所有頁面;要么通過el-tab的@tab-click事件,通過判斷tab.name選擇加載。但是后者有兩個弊端:(1)頁面仍然一下子渲染,向后臺請求許多接口,造成頁面加載緩慢,無法實現(xiàn)實時渲染的效果(2)不能解決父子組件數(shù)據(jù)傳遞的問題)
1. 父子組件數(shù)據(jù)傳遞問題:
<!--父組件--> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="我的行程" name="1"> <child :asyncData="asyncData"></child> </el-tab-pane> <el-tab-pane label="消息中心" name="2">配置</el-tab-pane> </el-tabs>
//子組件 export default{ data(){ return{ asyncArray:[] } }, props:{ asyncData : Array }, mounted(){ this.asyncArray = this.asyncData || [] } }
上面的例子中,父組件調(diào)用子組件child,同時向子組件傳遞了一個數(shù)組asyncData,且變量asyncData的值是由接口請求返回的。
子組件在mounted中使用由父組件傳遞的asyncData,但是在mounted時,父組件的接口還沒有返回所需的數(shù)據(jù),因此asyncData返回值為undefined,導致子組件中的asyncArray被賦值為空數(shù)組。即使后面接口返回了所需的數(shù)據(jù),子組件中可以取得asyncData的正常值。但由于asyncArray已被賦值為空數(shù)組,與asyncData指向的不是同一個地址,所以asyncArray的值依然是空數(shù)組。
2.lazy屬性
在element官網(wǎng)中發(fā)現(xiàn)了lazy屬性:
在默認值為false的情況下,標簽頁里的內(nèi)容與標簽是同時渲染的,未展開的標簽頁時display:none;當更改為true以后,未展開的標簽頁并不會渲染,二十等切換之后才會渲染,這樣不僅實現(xiàn)了實時加載標簽頁內(nèi)容的效果,同時也有足夠的時間等待接口返回數(shù)據(jù)。
到此這篇關于Element框架el-tab點擊標簽頁時再渲染問題的解決的文章就介紹到這了,更多相關Element el-tab渲染內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用vue和element-ui設置表格內(nèi)容分頁的實例
下面小編就為大家分享一篇利用vue和element-ui設置表格內(nèi)容分頁的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03VUE2 前端實現(xiàn) 靜態(tài)二級省市聯(lián)動選擇select的示例
下面小編就為大家分享一篇VUE2 前端實現(xiàn) 靜態(tài)二級省市聯(lián)動選擇select的示例。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02vue?perfect-scrollbar(特定框架里使用非該框架定制庫/插件)
這篇文章主要為大家介紹了vue?perfect-scrollbar在特定框架里使用一款并非為該框架定制的庫/插件如何實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2023-05-05Vue實現(xiàn)雙向綁定的原理以及響應式數(shù)據(jù)的方法
這篇文章主要介紹了Vue實現(xiàn)雙向綁定的原理以及響應式數(shù)據(jù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07el-tree設置選中高亮/焦點高亮、選中節(jié)點加深背景及更改字體顏色等的方法
el-tree默認有較淺的背景色,這里業(yè)務需要,選中節(jié)點的字體高亮,更改顏色,下面這篇文章主要給大家介紹了關于el-tree選中高亮/焦點高亮、選中節(jié)點加深背景及更改字體顏色等的設置方法,需要的朋友可以參考下2022-12-12