位置: IT常识 - 正文

vue3 使用defineAsyncComponent与component标签实现动态渲染组件(vue3.0用法)

编辑:rootadmin
vue3 使用defineAsyncComponent与component标签实现动态渲染组件

推荐整理分享vue3 使用defineAsyncComponent与component标签实现动态渲染组件(vue3.0用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3.0用法,vue3使用ref,vue3使用ref,vue3使用ref,vue3使用ref,vue3使用$refs,vue3 definecomponent,vue3使用ref,内容如对您有帮助,希望把文章链接给更多的朋友!

内容有些啰嗦,内容记载了当时遇到了bug以及解决问题的思路。

业务场景简述: 前端做配置化组件,通过url内的唯一标识,请求后端sql 哪取页面配置信息,前端通过配置信息动态渲染查询表单,导出、表格,toolbar以及动态弹窗;该动态渲染组件的功能,就是渲染的toolbar内的按钮,类型为自定义弹窗,弹窗路径为后端配置数据,前端通过点击该按钮,打开指定路径下的弹窗组件。

vue3 使用defineAsyncComponent与component标签实现动态渲染组件(vue3.0用法)

之前用的vue2的动态挂载组件,也没见vue3那么麻烦,官网上的例子以及网上的所以例子都是前端知道要导哪些组件,然后程序进入就直接导进来了,只是写了逻辑动态切换。我这个不一样,需要挂载的组件是未知的。所以实现起来有点吃力。

一、基础的动态引入组件: 简单的动态引入的意思是,前端知道要引入哪些组件,将多个组件引入到父组件中,但不渲染它,满足一定条件后,才去在某个位置渲染指定的组件。

<template> <custom-modal ref="custom"></custom-modal></template><script> import { reactive, ref, shallowReactive, onActivated, defineAsyncComponent, } from 'vue'; const customModal = defineAsyncComponent(() => import('./modal/CustomModal.vue')); const custom = ref(); </script>

以上的例子就是通过vue的defineAsyncComponent实现挂载组件,并赋值给customModal ,模板中可以直接使用<custom-modal>作为标签使用,也可以将它赋值给component中的is属性,is属性执向一个变量,可通过业务逻辑动态,更改该变量的值,就可以实现多个组件进行来回的渲染了

<template><component :is="componentKey" ref="custom"></component></template> import { reactive, ref, shallowReactive, onActivated, defineAsyncComponent, } from 'vue'; const componentKey = ref(null); const components: any = shallowReactive({}); const customModal = defineAsyncComponent(() => import('./modal/CustomModal.vue')); componentKey = customModal

二、复杂的引入:不确定到底引入什么组件,组件的路径由后端返回 将以上代码 添加到项目代码中,并不能实现,虽然引入不报错,但是ref一直为undefined,无法调用动态组件内的open函数。 不断尝试了很多次,得出以下结论

1.起初是在按钮的click函数内去挂载自定义组件并调用ref函数的,ref为undefined。尝试多次不能实现功能(这里是挂载与调用最合适的位置),2.接着又在初始化配置数据时(查询后端sql),axios的then函数内挂载组件,然后点击按钮的地方调用ref内的函数,ref依旧为null。3. 接着在最外层,调用初始化时挂载,也就是生命周期函数体内,测试还是一样的结果。4. 接着发现带有async函数体内挂载组件,也无法完成。5.单独写个函数,不加async,函数内挂载组件,然后再生命周期外调用该函数,按钮内调用ref内的方法,成功弹窗。这并不是我想要的,因为路径不是固定的,它要等到后端sql放回结果,才能执行。

总结:上面的多次测试,得出以下结论,都不能让动态组件ref对象有值 1、不能在组件的事件函数内挂载,

2、不能在axios的then函数体内挂载

3、不能在带有async

本文链接地址:https://www.jiuchutong.com/zhishi/290778.html 转载请保留说明!

上一篇:伯尔尼老城,瑞士 (© Simon Zenger/Alamy)(瑞士伯尔尼小镇)

下一篇:【react从入门到精通】React JSX详解(react最新教程)

  • 怎样写出高质量的软文(怎样写出高质量的文章)

    怎样写出高质量的软文(怎样写出高质量的文章)

  • 华为990处理器手机有几种型号(华为990处理器手机有几种型号价格)

    华为990处理器手机有几种型号(华为990处理器手机有几种型号价格)

  • 计算机之间的文件传输使用的协议是(计算机之间的文件传输协议)

    计算机之间的文件传输使用的协议是(计算机之间的文件传输协议)

  • 手机录屏模糊怎么解决(手机录屏模糊怎么变清晰vivo)

    手机录屏模糊怎么解决(手机录屏模糊怎么变清晰vivo)

  • 微信解封后聊天记录还在吗(微信解封后聊天记录还找得回来吗)

    微信解封后聊天记录还在吗(微信解封后聊天记录还找得回来吗)

  • vivox7一拔掉充电器就关机(vivox7拔掉充电器就关机怎么办)

    vivox7一拔掉充电器就关机(vivox7拔掉充电器就关机怎么办)

  • 微信怎么没有新表情(微信怎么没有新消息通知)

    微信怎么没有新表情(微信怎么没有新消息通知)

  • 华为col杠al10是什么型号(华为cor_al10是啥型号)

    华为col杠al10是什么型号(华为cor_al10是啥型号)

  • 3970x配什么主板(3990x配什么主板)

    3970x配什么主板(3990x配什么主板)

  • ps液化在哪儿(ps里面的液化在哪里)

    ps液化在哪儿(ps里面的液化在哪里)

  • 苹果bs机啥意思(苹果 bs机什么意思)

    苹果bs机啥意思(苹果 bs机什么意思)

  • 进程的三种状态(进程的三种状态及特点)

    进程的三种状态(进程的三种状态及特点)

  • 荣耀magic2的隐藏功能(荣耀magic2怎么隐藏图标)

    荣耀magic2的隐藏功能(荣耀magic2怎么隐藏图标)

  • 怎样才能格式化c盘(怎样才能格式化电脑)

    怎样才能格式化c盘(怎样才能格式化电脑)

  • 手机淘宝哪里领淘金币(淘宝领取教程)

    手机淘宝哪里领淘金币(淘宝领取教程)

  • 街电还充电宝要扫码吗(街电充电宝要钱吗)

    街电还充电宝要扫码吗(街电充电宝要钱吗)

  • 物联卡实名制怎么解绑销户(物联卡实名认证过程)

    物联卡实名制怎么解绑销户(物联卡实名认证过程)

  • 三星s8卡托断了怎么取(三星s8卡托断了还能用吗)

    三星s8卡托断了怎么取(三星s8卡托断了还能用吗)

  • 微信视频长度超过5分钟怎么上传(微信视频长度超多少)

    微信视频长度超过5分钟怎么上传(微信视频长度超多少)

  • iphonex怎么分屏(iphonex怎么分屏用两个程序)

    iphonex怎么分屏(iphonex怎么分屏用两个程序)

  • 哈罗单车如何免押金(哈罗单车如何免费)

    哈罗单车如何免押金(哈罗单车如何免费)

  • 苹果二手机怎么验机(苹果二手机怎么样验机)

    苹果二手机怎么验机(苹果二手机怎么样验机)

  • Windows 10找不到共享计算机怎么办(windows10找不到用户和组)

    Windows 10找不到共享计算机怎么办(windows10找不到用户和组)

  • 慕那尔山区的茶园,印度喀拉拉邦 (© SvitlanaBelinska/iStock/Getty Images Plus)(那慕尔省)

    慕那尔山区的茶园,印度喀拉拉邦 (© SvitlanaBelinska/iStock/Getty Images Plus)(那慕尔省)

  • svn命令  subversion命令行客户端程序(svn命令行拉取代码)

    svn命令 subversion命令行客户端程序(svn命令行拉取代码)

  • 税务基本任务和稽查范围?
  • 捐赠支出增值税
  • 小规模纳税人增值税优惠政策
  • 以前年度无形资产本年摊销额
  • 用友t3核算管理模块怎么结账
  • 营业成本包括三大费用如何称呼
  • 印花税购销合同计税金额怎么算
  • 红字发票怎么回事
  • 合并扣税项是什么科目
  • 合作社免税收入需要成本吗?
  • 工商年报填好后怎样公示
  • 企业注销当月无法申报个税
  • 专用发票上的码头堆存费等进项税可否抵扣?
  • 共同控制合营企业的合营者
  • 建安企业会计分录实操
  • 车间设备维修费计入制造费用吗
  • 出租无形资产的收入
  • 公司给离职员工个税零申报
  • 小规模纳税人查账征收所得税税率
  • 开专票需要对方是一般纳税人吗
  • 企业销售货物因违规处罚
  • 想要避免虚开发票,你就要注意以下行为
  • 保理利率多少可以买房
  • 新开公司第一个月个税零申报,但是有发工资
  • 行政事业单位如何加强内部控制
  • 境内所得和境外所得
  • 资产置换税务处理案例
  • 哪些企业可以享受加计扣除
  • 电脑黑屏怎么办主机还是亮的
  • 苹果6splus怎么操作技巧
  • 独立费计算
  • 应收账款零头会计处理
  • windows11蓝牙问题
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 代扣代缴个人所得税怎么算
  • 出租设备收取租金合法吗
  • 收到保险公司赔付的车辆维修费的会计分录
  • 发放应付职工薪酬是借方还是贷方
  • 增值税专用发票查询系统官方网站
  • 其他应付款怎样结转
  • php curl命令详解
  • 报销加油票怎么开票
  • 错误日志怎么修复
  • 接受非货币性资产投资会计处理
  • php是什么
  • mysql主要支持哪些数据类型?
  • mysql的使用实验总结与分析
  • mongodb数据库的作用
  • 非正常损失的增值税进项税额转出
  • 桶装矿泉水计入什么科目
  • 啤酒的消费税
  • 处置使用过的固定资产,税率按多少
  • 营业总收入包含什么
  • 结账的内容和程序是什么
  • 企业所得税什么时候计提
  • 城镇土地使用税暂行条例
  • 福利费需要通过应付职工薪酬吗
  • 商业企业库存商品成本核算
  • 公司注销未认证怎么处理
  • 补偿性余额实际利率计算公式
  • 退休人员在企业工作工资怎么算
  • 以前年度损益调整借贷方向
  • 购货方尚未偿付的货款属于什么会计科目
  • 总部结算什么意思
  • 会计 预提
  • SQL2005、SQL2008允许远程连接的配置说明(附配置图)
  • windows集群运行
  • vc运行程序
  • realjbox.exe - realjbox是什么进程 作用是什么
  • windows修复失败
  • linux内核文件夹
  • cocos2d安装
  • activex控件在哪设置
  • linux curl用法
  • dom操作的方法
  • jquery实战
  • jquery页面布局
  • 小微企业税务优惠政策
  • 福建省国家税务局通用定额发票
  • 开发票500以下
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设