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

  • 苹果高清通话volte怎么开(苹果高清通话功能)

    苹果高清通话volte怎么开(苹果高清通话功能)

  • 情侣空间网络繁忙(情侣空间系统繁忙截图)

    情侣空间网络繁忙(情侣空间系统繁忙截图)

  • b站视频点踩会不会看到(b站视频点踩会被限流吗)

    b站视频点踩会不会看到(b站视频点踩会被限流吗)

  • 苹果抖音卸载不干净打不开了(苹果抖音已卸载却显示还在)

    苹果抖音卸载不干净打不开了(苹果抖音已卸载却显示还在)

  • 华为mate30耳机插上没反应(华为mate30耳机插孔型号)

    华为mate30耳机插上没反应(华为mate30耳机插孔型号)

  • 苹果可以下载两个微信么(苹果可以下载两个QQ吗)

    苹果可以下载两个微信么(苹果可以下载两个QQ吗)

  • 为什么手机软件会自动退出去(为什么手机软件打不开)

    为什么手机软件会自动退出去(为什么手机软件打不开)

  • 3500x有核显吗(3500x有没有集成显卡)

    3500x有核显吗(3500x有没有集成显卡)

  • 手机qq屏蔽此人对方发消息会显示什么(手机qq屏蔽此人对方是什么样子的)

    手机qq屏蔽此人对方发消息会显示什么(手机qq屏蔽此人对方是什么样子的)

  • 如何提高淘宝安全等级过低无法评论(提高淘宝信誉度的方法)

    如何提高淘宝安全等级过低无法评论(提高淘宝信誉度的方法)

  • 钉钉分屏算不算时间(钉钉分屏算不算观看时长)

    钉钉分屏算不算时间(钉钉分屏算不算观看时长)

  • 小米手环3和4的表带通用吗(小米手环3和4的上市时间是多少)

    小米手环3和4的表带通用吗(小米手环3和4的上市时间是多少)

  • tencent里面哪些能删(tencent里面哪些文件可以删除)

    tencent里面哪些能删(tencent里面哪些文件可以删除)

  • 小米8支持蓝牙5.0吗(小米8支持蓝牙编码)

    小米8支持蓝牙5.0吗(小米8支持蓝牙编码)

  • 换新手机微信聊天记录还有吗(换新手机微信聊天记录还在吗)

    换新手机微信聊天记录还有吗(换新手机微信聊天记录还在吗)

  • 电话没人接会响多少秒(电话没人接会响多久)

    电话没人接会响多少秒(电话没人接会响多久)

  • 天猫免费上门退是什么意思(天猫免费上门退是什么快递)

    天猫免费上门退是什么意思(天猫免费上门退是什么快递)

  • iPhone11pro怎么设置微信美颜(iphone11pro怎么设置来消息闪光灯)

    iPhone11pro怎么设置微信美颜(iphone11pro怎么设置来消息闪光灯)

  • 电池开票属于什么类目(电池开发票)

    电池开票属于什么类目(电池开发票)

  • 聊天信息删了怎么恢复(聊天信息删除)

    聊天信息删了怎么恢复(聊天信息删除)

  • 小米8发烫严重怎么办(小米8发烫严不严重)

    小米8发烫严重怎么办(小米8发烫严不严重)

  • oppor17网速慢怎样提高(oppor174g网络慢是什么原因)

    oppor17网速慢怎样提高(oppor174g网络慢是什么原因)

  • it系统属于什么系统(何为it系统)

    it系统属于什么系统(何为it系统)

  • u启动u盘怎么安装win10 u启动u盘安装win10视频教程(u启动u盘怎么装系统)

    u启动u盘怎么安装win10 u启动u盘安装win10视频教程(u启动u盘怎么装系统)

  • 【HTML | CSS】春节将至,为网页挂上精美的灯笼吧(附源码)程序员的浪漫(_ html)

    【HTML | CSS】春节将至,为网页挂上精美的灯笼吧(附源码)程序员的浪漫(_ html)

  • 税务师考试咨询电话
  • 在外地设立分公司如何办理
  • 员工加班餐费计入会计什么科目
  • 月底计提分录
  • 减免城建税税款会计分录
  • 如何设置处理器个数如何设置显示器超频
  • 资产负债表中无形资产是原值还是净值
  • 被财政收回的财政经费如何做财务处理?
  • 建设单位对施工单位的管理要求
  • 补提以前年度税费应该计入
  • 退回房租含税的情况怎么入账?
  • 去年暂估的库存商品今年到了发票怎么做会计分录
  • 暂估的成本跨年了怎么冲销后要调整报表吗
  • 建筑施工外包
  • 工人保险一个月多少钱
  • 个体工商户怎么注册
  • 房产税逾期有滞纳金吗
  • 票据遗失情况说明格式及范文
  • 关于开票时纳税的规定
  • 企业购入新能源电车需要缴纳印花税吗
  • 营改增挂靠工程项目账务处理
  • 企业所得税怎么征收
  • 走pos对公账户扣多少手续费
  • 金蝶迷你版不能期末结账怎么办
  • 玩游戏网络延时高怎么处理
  • 资产报废对企业的好处
  • windows 10月更新
  • 企业发生的哪些费用可以结转
  • 股权激励的账务处理
  • 公路客运车辆
  • 集团公司收到的上级秘密
  • 企业支付宝要交税吗 要交多少钱
  • php curl命令详解
  • flex布局实战
  • linux ar命令
  • 个税各项减扣标准金额
  • 飞机票抵扣进项税含民航发展基金吗
  • 闭包怎么求
  • mysql命令的常用参数包括什么
  • 成本核算需要哪些数据
  • 附加税多计提了怎么调整
  • 工资结算汇总表怎么填
  • 为什么应付账款不被视为债务融资
  • 分公司注销总公司出的文件模板
  • 固定资产减值准备借贷方向
  • 贷方是收入还是借方是收入
  • 营业外收入是损益类账户吗
  • 无法收回的款项怎么记账
  • 先开发票钱后进怎样做帐?
  • 赠送电影票文案
  • 小企业会计准则会计科目表
  • 预收款退还如何处理
  • 物业水电费计算
  • 企业会计的应用指南
  • 暂估成本对冲分录怎么写
  • 商业企业注销应检查哪方面的问题
  • 商业企业购入商品
  • 规范的记账凭证是什么
  • 全面解析皮炎
  • mysql数据库文件存放在哪里
  • win7下mysql6.x出现中文乱码的完美解决方法
  • mysql字符串类型有哪些
  • centos配置kdump
  • 如何修改linux系统名称
  • WIN XP下VMware Tools(虚拟机)安装的详细方法(图文教程)
  • win8小键盘怎么打开
  • windows10x预览版
  • win8如何使用
  • win10系统代理在哪
  • jquery元素隐藏和显示切换
  • Tutorial 7 Rotation Transformation
  • vue wepack
  • ug编程代码意思
  • 如何用python编写一个程序
  • pythonwhile循环语句用法
  • 注册财税公司需要什么条件
  • 铁岭医保网上怎么交费
  • 垃圾填埋税率
  • 江苏大丰属哪个市
  • 出口退税账户标识是否怎么选
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设