Element提供的Tree樹(shù)形控件,可以用清晰的層級(jí)結(jié)構(gòu)展示信息,還可以展開(kāi)或折疊。Tree支持兩種加載模式:一次性加載全部樹(shù)節(jié)點(diǎn)和懶加載模式。所謂懶加載模式,是指當(dāng)需要展開(kāi)父節(jié)點(diǎn)時(shí)才渲染子節(jié)點(diǎn)。懶加載模式的應(yīng)用場(chǎng)景適合樹(shù)節(jié)點(diǎn)數(shù)據(jù)量大的情形,在一定程度上可以優(yōu)化圖形用戶界面的響應(yīng)效率以及提升用戶體驗(yàn)。但是,懶加載模式對(duì)數(shù)據(jù)動(dòng)態(tài)刷新應(yīng)用需求的支持不盡如意。樹(shù)形控件節(jié)點(diǎn)一旦展開(kāi)就緩存在本地,后續(xù)不會(huì)再繼續(xù)更新和刷新節(jié)點(diǎn)數(shù)據(jù)。本文將介紹如何實(shí)現(xiàn)Element樹(shù)形控件Tree在懶加載模式下的動(dòng)態(tài)更新。具體需求如下圖所示:
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),江海企業(yè)網(wǎng)站建設(shè),江海品牌網(wǎng)站建設(shè),網(wǎng)站定制,江海網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,江海網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。動(dòng)態(tài)更新需求
當(dāng)Select選擇器選擇箱變、逆變器、匯流箱或組串等類型時(shí),Tree樹(shù)形控件會(huì)動(dòng)態(tài)刷新顯示相應(yīng)類型的設(shè)備名稱。我們知道在懶加載模式下,Tree樹(shù)形控件節(jié)點(diǎn)一旦展開(kāi),就不再重新加載節(jié)點(diǎn)數(shù)據(jù)。那么如何實(shí)現(xiàn)在選擇不同類型時(shí)動(dòng)態(tài)刷新樹(shù)形控件節(jié)點(diǎn)數(shù)據(jù)顯示呢?一種實(shí)現(xiàn)思路是在Select選擇器發(fā)生變化時(shí),在change事件中清空Tree樹(shù)形控件的全部子節(jié)點(diǎn),然后再重新加載樹(shù)形控件節(jié)點(diǎn)數(shù)據(jù)。關(guān)鍵代碼如下圖所示:
清空樹(shù)形控件節(jié)點(diǎn)
首先,通過(guò)樹(shù)形控件的父節(jié)點(diǎn)清空所有子節(jié)點(diǎn)數(shù)據(jù),然后調(diào)用loadNode1方法重新構(gòu)建樹(shù)形控件懶加載數(shù)據(jù)。loadNode1是樹(shù)形控件load屬性指定的加載樹(shù)的方法,該方法在加載樹(shù)或者展開(kāi)某個(gè)節(jié)點(diǎn)時(shí)會(huì)被自動(dòng)調(diào)用。
我們可以看到,傳遞給loadNode1方法有兩個(gè)參數(shù),this.node和this.resolve,這兩個(gè)參數(shù)都是樹(shù)形控件頂層節(jié)點(diǎn)屬性數(shù)值。那么,是如何獲取到這兩個(gè)參數(shù)數(shù)值的呢?具體方法是:首先,申明node和reslove兩個(gè)變量用于保存頂層節(jié)點(diǎn)的node和reslove數(shù)值。然后,在樹(shù)形控件加載時(shí)將node.level===0情況下的node和reslove數(shù)值保存。如下圖所示:
獲取頂層節(jié)點(diǎn)
loadNode1內(nèi)部是通過(guò)reslove方法,將數(shù)據(jù)逐級(jí)推至樹(shù)形控件數(shù)據(jù)結(jié)構(gòu)中的。先執(zhí)行reslove方法的數(shù)據(jù)是父節(jié)點(diǎn),后執(zhí)行reslove方法的數(shù)據(jù)是子節(jié)點(diǎn),在無(wú)子節(jié)點(diǎn)的情況下通過(guò)調(diào)用reslove([])實(shí)現(xiàn)。
結(jié)束語(yǔ):至此,實(shí)現(xiàn)了Element的Tree樹(shù)形控件懶加載模式下的節(jié)點(diǎn)數(shù)據(jù)動(dòng)態(tài)更新。在子節(jié)點(diǎn)數(shù)據(jù)量大的情況下,懶加載和動(dòng)態(tài)更新機(jī)制,在一定程度上解決了響應(yīng)效率問(wèn)題,也提升了用戶體驗(yàn)。
補(bǔ)充:element ui 懶加載樹(shù)節(jié)點(diǎn)內(nèi)子項(xiàng)的動(dòng)態(tài)更新
<el-tree :props="props1" :load="loadNode1" lazy show-checkbox> </el-tree> <script> export default { data() { return { props1: { label: 'name', children: 'zones', isLeaf: 'leaf' }, }; }, methods: { loadNode1(node, resolve) { if (node.level === 0) { return resolve([{ name: 'region' }]); } if (node.level > 1) return resolve([]); setTimeout(() => { const data = [{ name: 'leaf', leaf: true }, { name: 'zone' }]; resolve(data); }, 500); } } }; </script>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享文章:詳解如何實(shí)現(xiàn)Element樹(shù)形控件Tree在懶加載模式下的動(dòng)態(tài)更新-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.rwnh.cn/article40/cejoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容