網站首頁 編程語言 正文
懶加載
按照 elementui官方文檔示例,效果圖
template部分,需要結合 lazy
和 load
一起使用
<el-tree
show-checkbox
node-key="id"
lazy
:load="loadNode"
:props="defaultProps"
v-loading="list.loading"
ref="tree">
</el-tree>
js 部分
export default {
data () {
return {
list: {
loading: false,
isExpand: false
},
defaultProps: { // tree 控件的數據結構,需要設置 isLeaf
children: 'children',
label: 'name',
isLeaf: 'leaf'
},
loading:false
}
},
methods: {
async loadNode(node, resolve) { // 懶加載
if (node.level === 0) {
return resolve(await this.getTagList())
} else if (node.level === 1) {
return resolve(await this.getTagApiList(node.label))
} else {
return resolve([]) // 防止該節點沒有子節點時一直轉圈的問題出現
}
},
async getTagList () { // 獲取所有接口所屬模塊 -> 第一層
this.list.loading = true
const res = await this.$API({
name: 'getApiTagList',
requireAuth: true
})
const tags = res.data.data
tags.forEach((item, index) => { // 節點需要構建為 tree 的結構
item.name = item.ta
item.id = index
item.leaf = false
})
this.list.loading = false
return tags
},
async getTagApiList (tag) { // 查詢模塊下的接口列表 -> 第二層
const res = await this.$API({
name: 'getTagApiList',
data: {
tag
},
requireAuth: true
})
const results = res.data.data
results.forEach(item => {
item.name
item.id
item.leaf = true
})
return results
},
}
}
局部刷新
想要實現的效果是,新增節點,點擊確定后局部刷新,渲染新數據
效果圖
關鍵代碼
<el-tree
node-key="id"
lazy
:load="loadNode"
:props="defaultProps"
:expand-on-click-node="false"
:check-on-click-node="true"
v-loading="list.loading"
@node-click="nodeClick"
ref="tree">
</el-tree>
// 點擊節點,把 node 保存下來,供局部刷新中的 node 使用
nodeClick (data, node) {
this.curPath = data.path
this.curNode = node
},
// 實現局部刷新,在點擊彈窗處調用的
partialRefreshpartialRefresh (node) {
node.loaded = false // 設置loaded為false;模擬一次節點展開事件,加載重命名后的新數據;
node.expand() // 新建子節點是刷新一次本節點的展開請求,而重命名和刪除則需要刷新父級節點的的展開事件,可以設置node.parent.loaded = false;node.parent.expand();
}
原文鏈接:https://blog.csdn.net/qq_38157825/article/details/114869160
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-08-04 Python?編程操作連載之字符串,列表,字典和集合處理_python
- 2022-09-16 Python封裝zabbix-get接口的代碼分享_python
- 2023-03-29 golang?channel讀取數據的幾種情況_Golang
- 2022-07-16 mac拷貝文件到Linux服務器、運行jar包,以及常用為Linux文件操作命令
- 2022-07-22 git倉庫的第一次上傳以及修改上傳項目
- 2022-06-01 ASP.Net?Core中的日志與分布式鏈路追蹤_實用技巧
- 2022-11-20 golang?實現?pdf?轉高清晰度?jpeg的處理方法_Golang
- 2023-07-26 webpack原理之開發第一個loader
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支