位置: 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最新教程)

  • 最牛的商业模式,往往能够让技术与市场需求紧密对接(最牛商业模式非常6+1)

    最牛的商业模式,往往能够让技术与市场需求紧密对接(最牛商业模式非常6+1)

  • 抖音如何不让别人看到我在线(抖音如何不让别人登录自己的账号)

    抖音如何不让别人看到我在线(抖音如何不让别人登录自己的账号)

  • 广电能连wifi上不了网(广电wifi能用电视看不了)

    广电能连wifi上不了网(广电wifi能用电视看不了)

  • 小米9se怎么恢复出厂设置(小米9se怎么恢复出厂)

    小米9se怎么恢复出厂设置(小米9se怎么恢复出厂)

  • 佳能电池要充多久才满(佳能电池充多久才满)

    佳能电池要充多久才满(佳能电池充多久才满)

  • 充电宝充到80就不进电(充电宝充到80就不充了)

    充电宝充到80就不进电(充电宝充到80就不充了)

  • padm00是什么型号手机(padmoo是什么手机型号)

    padm00是什么型号手机(padmoo是什么手机型号)

  • 华硕z270a主板上的按钮有什么用(华硕z270gaming主板)

    华硕z270a主板上的按钮有什么用(华硕z270gaming主板)

  • rockchip是什么设备(rockchip rga)

    rockchip是什么设备(rockchip rga)

  • 苹果自动弹出音量调节(苹果总是自动弹出音量)

    苹果自动弹出音量调节(苹果总是自动弹出音量)

  • 苹果手机广角怎么开(苹果手机广角怎么拍)

    苹果手机广角怎么开(苹果手机广角怎么拍)

  • 手机hifi是什么意思(hifi是什么功能)

    手机hifi是什么意思(hifi是什么功能)

  • 手机如何进入qq中心(手机如何进入qq农场)

    手机如何进入qq中心(手机如何进入qq农场)

  • 抖音开直播要多少岁(抖音开直播要多少等级)

    抖音开直播要多少岁(抖音开直播要多少等级)

  • 米聊怎么加大量好友(米聊怎么聊天)

    米聊怎么加大量好友(米聊怎么聊天)

  • cad永久加载插件命令(cad2016加载插件)

    cad永久加载插件命令(cad2016加载插件)

  • 华为手环4e怎么连接(华为手环4e怎么调节亮度)

    华为手环4e怎么连接(华为手环4e怎么调节亮度)

  • iphone库乐队设置铃声(iphone库乐队设置闹钟铃声)

    iphone库乐队设置铃声(iphone库乐队设置闹钟铃声)

  • vue照片时长怎么设置(vue设置照片的时长)

    vue照片时长怎么设置(vue设置照片的时长)

  • 卡上号码导入苹果手机(手机卡里号码怎么导入苹果手机)

    卡上号码导入苹果手机(手机卡里号码怎么导入苹果手机)

  • 闲鱼限制发布多久恢复(闲鱼限制发布336个小时)

    闲鱼限制发布多久恢复(闲鱼限制发布336个小时)

  • 酷狗视频怎么保存到手机(酷狗视频怎么保存到本地)

    酷狗视频怎么保存到手机(酷狗视频怎么保存到本地)

  • 小红书怎么推广自己的笔记(小红书怎么推广作品)

    小红书怎么推广自己的笔记(小红书怎么推广作品)

  • 苹果蓝牙耳机可以用在华为手机上吗(苹果蓝牙耳机可以和华为手机配对吗)

    苹果蓝牙耳机可以用在华为手机上吗(苹果蓝牙耳机可以和华为手机配对吗)

  • 苹果蓝牙耳机丢了怎么定位(苹果蓝牙耳机丢了一个可以配一个吗)

    苹果蓝牙耳机丢了怎么定位(苹果蓝牙耳机丢了一个可以配一个吗)

  • 移动硬盘通过Mac磁盘工具抹掉磁盘不小心强制退出急救方法(移动硬盘通过软件改硬盘容量怎么改)

    移动硬盘通过Mac磁盘工具抹掉磁盘不小心强制退出急救方法(移动硬盘通过软件改硬盘容量怎么改)

  • css点击文字(非按钮) 能自动改变颜色。(css点击菜单显示内容)

    css点击文字(非按钮) 能自动改变颜色。(css点击菜单显示内容)

  • pushed命令  向shell目录堆栈中添加记录(push指令执行的详细过程)

    pushed命令 向shell目录堆栈中添加记录(push指令执行的详细过程)

  • 企业名称税号
  • 购买土地使用权契税的会计分录
  • 水利建设基金按照增值税征收
  • 印花税核定依据和核定比例
  • 个税app正式启用
  • 固定资产税前一次性扣除
  • 车保险备注栏车船税如何记账
  • 怎么知道对方的支付宝账号
  • 公司购买车辆抵扣税
  • 公允价值变动损益和投资收益区别
  • 电子发票和纸质发票哪个好
  • 留存收益筹资的优缺点
  • 企业助学捐款分录怎么写
  • 隔月红冲发票对报税有影响
  • 股东转入的钱算什么
  • 收到招聘通知
  • 代收房款
  • 给政府开发票如何处理?
  • 应交税费应交增值税
  • 员工离职违约金怎么算
  • 销售折扣计入增值税销售额的
  • 固定资产评估增值后如何入账
  • 汽车过户费包括
  • win7系统中病毒怎么办
  • window10自带商店下载位置
  • 苹果客服人工24小时
  • 新西兰萨摩亚人
  • 系统win7旗舰版
  • 外单位承担
  • 捐赠支出如何做账
  • 退回的税控盘费用如何做会计分类
  • php函数写法
  • php获取目录所有文件
  • yum命令详解
  • hexdump windows
  • 卖出周转材料的分录怎么做
  • 民间非营利组织会计账务处理
  • 年度财务报表分为哪几类
  • Python psd-tools如何转换文件
  • 金税盘清卡失败增值税未申报或未比对
  • 资产负债表第二年怎么填
  • SQLSERVER2008中CTE的Split与CLR的性能比较
  • 购入交易性金融资产的相关税费计入
  • 工业企业出租设备租金计入什么科目
  • sql server 附加
  • 税务处理决定书撤销情形
  • 出货后90天付款
  • 坏账准备是啥意思
  • 简易征收应纳税额
  • 运费增值税发票抵扣
  • 租用写字楼水电怎么收费
  • 出口退税进项发票有什么要求
  • 没有申报未开票收入怎么办
  • 如何做好现金流
  • 新单位年终工作总结
  • mysql中的where子句
  • windows无法启动MySQL80服务
  • xp系统多了explorer进程
  • linux中,什么命令可以控制口令的存活时间?
  • centos支持哪些cpu
  • 教大家一些实用的技巧方法
  • linux的sbin
  • 鲁大师安装失败怎么回事
  • Linux下查看某一个程序所使用的内存方法
  • centos挂载lvm硬盘
  • Extjs4.0 ComboBox如何实现三级联动
  • node分页接口
  • dos cat命令
  • 安卓核心架构
  • js实现物体移动
  • unity如何成一组
  • Unity3D中的事件处理
  • javascript包括在html中
  • 安卓手机管家下载
  • 使用struts2+Ajax+jquery验证用户名是否已被注册
  • jquery获取文件大小
  • 福利费是否计入成本费用
  • 广西税务移动办税平台app
  • 跨县调动工作流程
  • 重庆税务登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设