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

  • 苹果13promax是5g手机吗(苹果13promax是什么屏幕)

    苹果13promax是5g手机吗(苹果13promax是什么屏幕)

  • 小米浏览器图标不见了(小米浏览器图标没了)

    小米浏览器图标不见了(小米浏览器图标没了)

  • 声音格式文件存储空间较大(声音文件格式后缀)

    声音格式文件存储空间较大(声音文件格式后缀)

  • 小米8可以投屏在墙上吗(小米8投屏功能在哪里)

    小米8可以投屏在墙上吗(小米8投屏功能在哪里)

  • soul被守护了别人能看见吗(soul被守护了对方)

    soul被守护了别人能看见吗(soul被守护了对方)

  • 电脑平板模式有什么用(电脑平板模式有哪些)

    电脑平板模式有什么用(电脑平板模式有哪些)

  • hdmi线好坏影响画质吗(hdmi线太差会怎么样)

    hdmi线好坏影响画质吗(hdmi线太差会怎么样)

  • 微信怎么设置不接受视频语音聊天(微信怎么设置不让别人通过手机号加我)

    微信怎么设置不接受视频语音聊天(微信怎么设置不让别人通过手机号加我)

  • 10.1英寸屏幕是多大(10.1英寸屏幕是多少厘米长宽)

    10.1英寸屏幕是多大(10.1英寸屏幕是多少厘米长宽)

  • 小圆点怎么关(荣耀x30小圆点怎么关)

    小圆点怎么关(荣耀x30小圆点怎么关)

  • 自动获得ip地址什么意思(自动获取ip地址冲突怎么解决)

    自动获得ip地址什么意思(自动获取ip地址冲突怎么解决)

  • 手机短信验证码怎么在自己的手机上找到(手机短信验证码泄露了会有什么风险)

    手机短信验证码怎么在自己的手机上找到(手机短信验证码泄露了会有什么风险)

  • 通常所说的计算机的主机是指什么(通常所说的计算机电脑配有多少内存)

    通常所说的计算机的主机是指什么(通常所说的计算机电脑配有多少内存)

  • hdmi arc 接口是什么(hdmi接口arc和mhl)

    hdmi arc 接口是什么(hdmi接口arc和mhl)

  • 苹果8p和xsmax的区别

    苹果8p和xsmax的区别

  • 手机excel怎么打字(手机excel怎么打印到一张a4纸)

    手机excel怎么打字(手机excel怎么打印到一张a4纸)

  • 苹果手机的听觉怎么用(苹果手机的听觉功能怎么用)

    苹果手机的听觉怎么用(苹果手机的听觉功能怎么用)

  • 如何把应用安装到sd卡(如何把应用安装到外置储存卡)

    如何把应用安装到sd卡(如何把应用安装到外置储存卡)

  • system boost是病毒吗(system病毒怎么清理)

    system boost是病毒吗(system病毒怎么清理)

  • 美图秀秀怎么补头发(美图秀秀怎么补发际线)

    美图秀秀怎么补头发(美图秀秀怎么补发际线)

  • 华为灭屏显示时间怎么设置(华为灭屏显示时间怎么开启)

    华为灭屏显示时间怎么设置(华为灭屏显示时间怎么开启)

  • 如何查看手机浏览痕迹(如何查看手机浏览器无痕浏览记录)

    如何查看手机浏览痕迹(如何查看手机浏览器无痕浏览记录)

  • 微信御载了怎样恢复聊天记录(微信御载了重新下载原记录在吗)

    微信御载了怎样恢复聊天记录(微信御载了重新下载原记录在吗)

  • 如何利用OneDrive将存到文件夹的文件自动发到邮箱(如何利用流产让男人愧疚)

    如何利用OneDrive将存到文件夹的文件自动发到邮箱(如何利用流产让男人愧疚)

  • mtask.exe - mtask是什么进程 有什么用

    mtask.exe - mtask是什么进程 有什么用

  • Python中的defaultdict函数(Python中的关键字)

    Python中的defaultdict函数(Python中的关键字)

  • 哪些土地房产转让合法
  • 印花税应计什么科目?
  • 汇总记账凭证会计核算形式与科目汇总表
  • 医院这么开发票
  • 分公司开专票需要缴税
  • 单位买了一批空调怎么办
  • 股东分红需要开股东会决定吗?
  • 登记多栏式日记总账的依据是
  • 上期计提的费用是什么
  • 外借资质收取的税费会计处理
  • 模具可以申请专利吗
  • 发生的成本作为存货处理
  • 免税企业以前年收入多少
  • 如何从百旺开票系统中导出开票明细
  • 营业执照许可经营信息怎么填
  • 公司购买环保材料会计分录
  • 最新出口退税率调整
  • 外账成本要注意什么
  • 无偿划拨的资产怎么做资产卡片账簿
  • 股票交易的印花税和手续费是多少
  • 资产负债表日后调整事项会计处理
  • 固定资产折旧和累计折旧的区别
  • 发票查询发票代码有误
  • 利息收入是否缴纳印花税
  • 印花税分配比例
  • 转让金融商品应交增值税怎么算
  • 一般纳税人税负率是多少
  • 上年多计提所得税怎么做会计分录
  • 未开票收入跨年开票
  • 企业接受母公司代为缴纳税款会计分录
  • 财政补助收入核算内容
  • 增值税专用发票上注明的价款含税吗
  • vue 的watch
  • 在java中有一种叫做
  • 金融工具减值的范围包括哪些?
  • php模板教程
  • php的mysql_query
  • 人工智能会影响经济发展吗
  • 分享项目成果
  • 固定资产类别有哪些
  • 各会计科目的含义
  • 个体工商户开增值税专用发票
  • 事业收入如何确认
  • 占地面积法如何分摊土地成本
  • 上市公司收购其他股票
  • 报考中级会计师考几科
  • 车间管理人员的福利费计入什么科目
  • 工程设备租赁有哪些
  • 支付收购股权款如何做账
  • 去年应收账款下账错误怎么调整
  • 购买方已认证销售方作废
  • 进项税转出怎样做账务处理
  • 应收帐款表
  • 购买固定资产是应付账款还是其他应付款
  • 初中学历学会计难不难
  • mysql如何导出数据
  • win7系统修改
  • Windows Server 2008网络中顺畅访问“邻居”
  • win7系统怎样设置
  • win8自带的视频播放器打不开
  • 开启电脑上帝模式
  • 安装阿里旺旺步骤
  • linux sleep命令有什么用
  • opengl learn
  • excel表限制
  • python读取文件指定内容
  • unity 调用java
  • unity3d打开
  • jni静态注册和动态注册
  • 安卓api中文手册
  • uil的简单常用操作
  • javascript parseInt 函数分析(转)
  • js中tolocalestring
  • android fragmentactivity
  • javascript例题
  • 赞美税务干部对联大全集锦
  • 美国非税收入排名榜
  • 资源税百科
  • 地方财政税收的组成
  • 开票信息哪里查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设