洲聚零代码开放平台
开放平台简介
后端API
表单
单点登录
SAMl2.0协议
OIDC协议
CAS协议
开发指南
获取token
Rsa加密公钥
Des加密公钥
通用
执行sql
数据缓存
组织岗位
应用功能
前端API
开发指南
通用
系统
用户信息
模态
网络
消息管理
常用方法
业务服务
调用sql
个性化样式
个性化配置
数据处理
定义函数
表单
打开表单
表单属性监听
流程
流程处理
主列表
子列表
页面
自定义Vue组件
zj-cli安装使用
自定义 Vue 组件开发规范
自定义Vue组件调试
脚本示例
列表脚本示例
表单脚本示例
全局脚本示例
UI组件动态加载
其他UI框架如何引入
表单地址说明
场景示例
综合示例
列表按钮打开表单存值
点击按钮调用API回写表单
按钮
修改平台默认按钮名称
点击子表自定义按钮弹出流传表单
数据库结构
操作日志表 t_operation_log
单点登录
单点登录(Authcode)配置
单点登录第三方系统集成
异常处理
vs code 环节异常
技术参数
连接器示例
人员信息加/解密自定义接口示例
本文档使用 MrDoc 发布
-
+
首页
UI组件动态加载
## 描述 平台在vue3版本支持 Ant Design Vue、Element Plus、Vant 三个主流 Vue 3 UI 框架的组件动态加载。 this.$uiManager用来加载不同框架的组件,有两种加载方式:加载单个 / 多个组件、加载完整框架。 ### 1. 按需加载组件(推荐) 按项目需要,加载用到的组件,常用方法如下: | 要加载的框架 | 方法名 | 简单说明 | | -------------- | ------------------------ | --------------------- | | Element Plus | loadElementPlusComponent | 加载 Element Plus 的组件 | | Ant Design Vue | loadAntDesignComponent | 加载 Ant Design Vue 的组件 | | Vant | loadVantComponent | 加载 Vant 的组件 | #### 用法示例: * 加载单个组件(以 Element Plus 的 Button 为例): ```javascript // 在Vue组件的方法里使用 await this.$uiManager.loadElementPlusComponent('Button') ``` * 加载多个组件(以 Vant 的 Button、Field 为例): ```javascript await this.$uiManager.loadVantComponent(['Button', 'Field']) ``` ### 2. 加载完整框架(不推荐,除非需要所有组件) 如果项目要用到某个框架的所有组件,可以直接加载完整框架: | 框架名称 | 方法名 | 用法示例 | | -------------- | --------------- | ---------------------------------------- | | Element Plus | loadElementPlus | await this.$uiManager.loadElementPlus() | | Ant Design Vue | loadAntDesign | await this.$uiManager.loadAntDesign() | | Vant | loadVant | await this.$uiManager.loadVant() | ## 实际场景示例 ### 1. 在 Vue 组件里用 在 Vue 文件中,通过按钮点击加载组件,加载完成后显示组件: ```vue <template> <div> <button @click="loadBtnComponents">加载按钮组件</button> <!-- 加载完成后才显示对应的按钮 --> <el-button v-if="showElBtn">Element Plus按钮</el-button> <van-button v-if="showVanBtn">Vant按钮</van-button> </div> </template> <script> export default { data() { return { showElBtn: false, // 控制Element Plus按钮显示 showVanBtn: false // 控制Vant按钮显示 } }, methods: { async loadBtnComponents() { try { // 加载Element Plus的Button组件,加载完显示按钮 await this.$uiManager.loadElementPlusComponent('Button') this.showElBtn = true // 加载Vant的Button组件,加载完显示按钮 await this.$uiManager.loadVantComponent('Button') this.showVanBtn = true } catch (error) { console.error('组件加载失败了', error) } } } } </script> ``` ### 2. 路由跳转时加载组件 进入某个页面(如管理页)时,提前加载页面需要的组件,让页面显示更流畅: ```javascript // 在router/index.js文件中 const routes = [ { path: '/admin', // 管理页路由 component: () => import('@/views/Admin.vue'), // 进入页面之前加载组件 beforeEnter: async (to, from, next) => { try { // 加载管理页需要的Table、Form组件 await window.$uiManager.loadElementPlusComponent(['Table', 'Form']) next() // 加载完成,进入页面 } catch (error) { console.error('组件加载失败', error) next() // 即使失败,也进入页面 } } } ] ``` ## 如何查看已加载的组件 如果想知道哪些组件已经加载过,可以用以下方法: 1. 查看某个框架下已加载的所有组件: ```javascript // 查看Element Plus已加载的组件 const loadedElComponents = this.$uiManager.getLoadedComponents('elementPlus') console.log('已加载的Element组件:', loadedElComponents) ``` 2. 检查某个组件是否已加载: ```javascript // 检查Element Plus的Button是否已加载 const isBtnLoaded = this.$uiManager.isComponentLoaded('elementPlus', 'Button') console.log('Button是否已加载:', isBtnLoaded) // 结果是true或false ```
lipeilun
2025年9月23日 15:52
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码