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

  • qq浮窗设置在哪里设置(qq浮窗设置在哪设置小米)

    qq浮窗设置在哪里设置(qq浮窗设置在哪设置小米)

  • airpods和2的区别(airpods与airpods2区别)

    airpods和2的区别(airpods与airpods2区别)

  • 快充头输出是多少(快充头输出电压是多少)

    快充头输出是多少(快充头输出电压是多少)

  • 联想原装与定制区别(联想原装与定制哪个好)

    联想原装与定制区别(联想原装与定制哪个好)

  • 90赫兹手机有哪些(90赫兹手机有哪些型号)

    90赫兹手机有哪些(90赫兹手机有哪些型号)

  • 淘宝获取店铺失败是什么意思(淘宝获取店铺失败怎么回事)

    淘宝获取店铺失败是什么意思(淘宝获取店铺失败怎么回事)

  • 华为nova7的卡槽在哪(华为nova7的卡槽怎么打开)

    华为nova7的卡槽在哪(华为nova7的卡槽怎么打开)

  • 茄子视频为什么下载不了了(茄子视频为什么越往里越有轻)

    茄子视频为什么下载不了了(茄子视频为什么越往里越有轻)

  • 人工智能是由什么呈现出来的智能型(人工智能是由什么呈现出来的智能性)

    人工智能是由什么呈现出来的智能型(人工智能是由什么呈现出来的智能性)

  • 怎样发起群聊视频(群聊怎么发起视频群聊)

    怎样发起群聊视频(群聊怎么发起视频群聊)

  • struct在c语言中是什么意思(c语言中struct的含义)

    struct在c语言中是什么意思(c语言中struct的含义)

  • world如何添加目录(word怎么添加目录内容)

    world如何添加目录(word怎么添加目录内容)

  • 快手作品链接在哪里(快手作品链接在哪里找到)

    快手作品链接在哪里(快手作品链接在哪里找到)

  • 华为yalal10是什么手机(yalal10是华为什么型号手机)

    华为yalal10是什么手机(yalal10是华为什么型号手机)

  • 荣耀v20nfc感应区在哪(荣耀v10nfc感应区)

    荣耀v20nfc感应区在哪(荣耀v10nfc感应区)

  • 快手评论限制怎么解除(怎样才能解除快手评论限制)

    快手评论限制怎么解除(怎样才能解除快手评论限制)

  • 淘宝十一活动时间(今年十一淘宝有什么活动内容)

    淘宝十一活动时间(今年十一淘宝有什么活动内容)

  • 谷歌相机怎么下载(谷歌相机怎么下载安装)

    谷歌相机怎么下载(谷歌相机怎么下载安装)

  • oppor11s相册私密怎么弄(oppo相册中设为私密的照片在哪里?)

    oppor11s相册私密怎么弄(oppo相册中设为私密的照片在哪里?)

  • pr如何删除创建的项目(怎么删除pr不用的项目2018)

    pr如何删除创建的项目(怎么删除pr不用的项目2018)

  • 钉钉如何不显示手机号(钉钉如何不显示自己的信息)

    钉钉如何不显示手机号(钉钉如何不显示自己的信息)

  • 三级网络技术知识点(三级网络技术题库有多少套?)

    三级网络技术知识点(三级网络技术题库有多少套?)

  • 购买苹果Mac后的10个快速上手技巧(图文并茂、适合新手)(买mac要买applecare么)

    购买苹果Mac后的10个快速上手技巧(图文并茂、适合新手)(买mac要买applecare么)

  • 半年奖个人所得税怎么算的
  • 账本印花税的计税依据
  • 包装物租金要交消费税吗为什么
  • 新个税计算公式怎么输入excel
  • 培训学校可以不可以用燃气取暖炉
  • 企业所得税缴纳时计提可以吗
  • 公司购买设备报告怎么写
  • 纳税申报表保留几年
  • 非限定性净资产包括哪些科目
  • 生产企业的基础设施是指
  • 如何开小加工厂
  • 行政事业单位无偿调拨资产会计处理
  • 营改增后个人所得税计税依据实例
  • 外币资本金使用范围
  • 事业单位服务收入包括
  • 样品不收钱怎么做会计分录
  • 免税和不免税的价格区别
  • 进口关税专用缴款书怎么做分录
  • 报表中利润为什么税后比税前大?
  • 子公司可否将母公司注销
  • 增值税专用发票几个点
  • 房地产企业预收账款
  • 开发商乱要回迁怎么投诉
  • 合同无效后还能主张违约责任吗
  • 小微企业销售已按固定资产入账的办公家具也享受免税政策吗?
  • 资金筹集业务核算实训心得体会
  • 进项税额转出的
  • 单位应当为职工创造有益于健康的环境和条件
  • 每月的话费到下个月会扣吗
  • 企业报税流程图
  • 出口退税的会计分录实例
  • 重复确认收入是什么意思
  • 如何安装纯净win10
  • 账户验证因姓名验证错误导致失败
  • 消费税有减免政策吗
  • php 设计模式
  • sbdrvdet.exe - sbdrvdet是什么进程 有什么用
  • yii2框架从入门到精通pdf
  • 移动加权平均法例题
  • 用jsp实现用户登录验证
  • find命令详解查找文件
  • 缴纳增值税会计科目
  • 中小企业的资产负债率均值是多少
  • 合伙企业个人所得税税率表
  • 工程运维预缴增值税税率
  • 用python创建一个列表
  • 原材料折价销售怎么算
  • 成本会计的岗位要求
  • 无形资产入股后大幅缩水怎么办
  • 公司给员工付个税怎么交
  • 小规模纳税人个体户经营所得税怎么算
  • 企业拆迁补偿款
  • 库存股属于什么账户
  • 收到投资款如何做账务处理
  • 购进无偿赠送
  • 物流公司贷款
  • 一般纳税人房租租赁费的税率
  • 增值税普通发票查询
  • 期初调整分录
  • 政府补助的分类及会计处理方法
  • 税控盘会计分录怎么做
  • 环保局检查锅炉房都查什么
  • mdf文件在哪
  • win10怎么预览文件
  • win7怎么看
  • centos7.6ssh
  • freebsd windows
  • linux怎么自定义命令
  • unix操作指令
  • mac ds_store
  • 电脑windows xp
  • dns轮询是什么意思
  • opengl示例
  • unity3d游戏引擎支持几种平台发布?
  • python2与python3的区别
  • shell脚本中判断grep的结果
  • js状态管理
  • 税务代办需要什么资料
  • 国税总局王军简历
  • 粤泰股份公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设