当前位置: 首页 > news >正文

vue3中使用h()函数加载elementPlus 组件

需求:后端返回一段html代码片段,前端页面直接渲染该片段,但是需要对代码片段中的一些、元素进行替换,比如,某个元素替换成 el-tree-select。 

import { h, render } from 'vue';
import { ElTreeSelect, ElSelect, ElOption, ElDatePicker, ElConfigProvider } from 'element-plus';
export const renderElTreeSelect = (el, data) => {// 递归构建部门树function buildDeptTree(parentId) {return data.filter((dept) => dept.deptParent === parentId) // 找到所有子节点.map((child) => ({...child,children: buildDeptTree(child.deptId) // 递归构建子节点的子树}));}// 创建一个dom元素const dom = document.createElement('div');// 将元素插入到原本的元素之前el.before(dom);// 定义一个const comp = defineComponent({setup() {const selectedValue = ref('');const treeData = ref([]);// 获取组织机构树treeData.value = buildDeptTree(0);return () =>h(ElTreeSelect, {// 树形数据data: treeData.value,// 唯一标识字段nodeKey: 'deptId',props: {label: 'deptName'},// 绑定值modelValue: selectedValue.value,// 变更事件'onUpdate:modelValue': (val) => {el.attr('value', val);selectedValue.value = val;},placeholder: '请选择部门'});}});// 渲染组件render(h(comp), dom);// 隐藏原来的组件:后面可能取值需要,暂定隐藏不删除el.hide();
};


http://www.mrgr.cn/news/93849.html

相关文章:

  • C语言数据结构之顺序表
  • Vue3实战学习(Vue3集成Element-Plus(常用依赖、插件安装与导入 。按钮、图标组件。自定义主题的实现)(超详细))(4)
  • 【网络安全工程】任务11:路由器配置与静态路由配置
  • Codeforces Round 976 (Div. 2) (部分题解)
  • c语言笔记 函数参数的等价(上)
  • docker compose 以redis为例
  • CUDA编程入门代码
  • 《OkHttp:工作原理 拦截器链深度解析》
  • 泛型、泛型上限、泛型下限、泛型通配符
  • (更新完)LPZero: Language Model Zero-cost Proxy Search from Zero
  • 梯度计算中常用的矩阵微积分公式
  • How to install nacos 2.5 with podman
  • Java 大视界 -- Java 大数据在智能体育赛事运动员表现分析与训练优化中的应用(122)
  • ALG(Alloy+Loki+Grafana)轻量级日志系统
  • 华为eNSP:配置单区域OSPF
  • ​​《从事件冒泡到处理:前端事件系统的“隐形逻辑”》
  • Deepseek可以通过多种方式帮助CAD加速工作
  • Mybatis Generator 使用手册
  • DeepSeek私有化部署7:openEuler 24.03-LTS-SP1安装Open WebUI
  • MYSQL之创建数据库和表