Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue3动态组件

Vue3动态组件

原创
作者头像
软件架构师Michael
发布于 2022-10-06 11:31:41
发布于 2022-10-06 11:31:41
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

先上Vue3组件的实例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

</head>
<body>
    <div id="michael">
        <michael></michael>
        <sky></sky>
        <blue></blue>
    </div>
    <script>
       var app= Vue.createApp({
            data(){
                return {
                    "msg":"hello"
                }
            }

        });
        app.component('michael', {
            'template':`
                <div>michael</div>
            `
        });
        app.component('sky', {
            'template':`
                <div>sky</div>
            `
        });
        app.component('blue', {
            'template':`
                <div>blue</div>
            `
        });
        app.mount("#michael");
    </script>
</body>
</html>

注意:以上是Vue3的叠加的写法,不一定要写成链式的代码。

运行效果:

多个组件
多个组件

动态组件的写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
    <style>
        .abc{
            width: 100px;
            height: 100px;
            border: 1px solid black;
            background-color: green;
            color:white;
            
        }
    </style>

</head>
<body>
    <div id="michael">
        <!--<michael></michael>
        <sky></sky>
        <blue></blue>-->
        <button v-for='tab in btnMsg' :key="tab" @click="tabName=tab">
            {{tab}}
        </button>
        <component :is="tabName" class="abc"></component><!--动态组件-->
    </div>
    <script>
       var app= Vue.createApp({
            data(){
                return {
                    "msg":"hello",
                    "btnMsg":["michael","sky","blue"],
                    "tabName":"michael"
                }
            }

        });
        app.component('michael', {
            'template':`
                <div>michael</div>
            `
        });
        app.component('sky', {
            'template':`
                <div>sky</div>
            `
        });
        app.component('blue', {
            'template':`
                <div>blue</div>
            `
        });
        app.mount("#michael");
    </script>
</body>
</html>

运行效果如下:

动态组件的效果
动态组件的效果

[小结]

  • 在Vue3中,可以使用component标签进行组件输出
  • component标签需要配合:is属性来指定输出的组件名称,属性值为字符串
  • component标签的所有的属性都会叠加到最终输出组件内容的最外层元素上

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue的修饰符!sync和el-dialog弹窗组件
父组件 index.vue: <template> <info :value="myValue" @valueChanged="e => myValue = e"></info> </template> <script> inport info from './info.vue'; export default { components: { info, }, data() { return {
leader755
2022/03/09
8190
ElementUI——elementui2.0表格支持render渲染
当前项目基于vue2.0+elementui来实现的,所以简单封装一个表格支持render函数来自定义渲染;
思索
2024/08/15
2220
ElementUI——elementui2.0表格支持render渲染
【Vue.js——ElementUi】element-ui 组件二次封装(蓝桥杯真题-2276)【合集】
element-ui 官网上具有单选功能的表格 demo 为:点击表格下方的按钮可以选中指定的某行数据。效果如下:
Rossy Yan
2025/01/24
5360
【Vue.js——ElementUi】element-ui 组件二次封装(蓝桥杯真题-2276)【合集】
vue2.0+Element-ui实战案例
我们将会选择使用一些 vue 周边的库vue-cli, vue-router,axios,moment,Element-ui搭建一个前端项目案例,后端数据接口,会使用json-server快速搭建一个本地的服务,方便对数据的增删改查,
小周sir
2019/09/23
2.5K0
vue2.0+Element-ui实战案例
全面了解 Vue.js 函数式组件
如果你是一位前端开发者,又在某些机会下阅读过一些 Java 代码,可能会在后者中看到一种类似 ES6 语法中箭头函数的写法
江米小枣
2021/11/02
3K0
Vue.js与ElementUI搭建无限级联层级表格组件
今天,回老家了。第一件事就是回家把大屏安排上,写作的感觉太爽了,终于可以专心地写文章了。我们今天要做的项目是怎么样搭建一个无限级联层级表格组件,好了,多了不多说,赶快行动起来吧! 项目一览
马克社区
2022/05/09
1.4K0
Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现
菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http/modules/menu.js 添加 findMenuTree 接口。 import axios from '../axios' /* * 菜单管理模块 */ // 保存 export const save = (data) => { return axios({ url: '/menu/save', method: 'post'
朝雨忆轻尘
2019/06/18
2.1K0
微服务项目:尚融宝(42)(核心业务流程:借款额度审批(2))
创建 src/views/core/borrow-info/detail.vue 
一个风轻云淡
2022/11/15
4180
微服务项目:尚融宝(42)(核心业务流程:借款额度审批(2))
【项目总结】vue3-shop-cms
在完成基于 Vue3 和 TypeScript 的商城后台管理系统项目后,总结的学习笔记。项目原作者coderwhy
客怎眠qvq
2022/11/01
7410
【项目总结】vue3-shop-cms
el-table 多表格弹窗嵌套数据显示异常错乱问题
使用vue+element开发报表功能时,需要列表上某列的超链接按钮弹窗展示,在弹窗的el-table列表某列中再次使用超链接按钮点开弹窗,以此类推多表格弹窗嵌套,本文以弹窗两次为例 最终效果如下示例页面
GoodTime
2024/03/05
4500
el-table 多表格弹窗嵌套数据显示异常错乱问题
Vue电商实践项目(二)
1.实现后台首页的基本布局 2.实现左侧菜单栏 3.实现用户列表展示 4.实现添加用户
用户6808043
2022/02/24
5.3K0
Vue
通过前面的介绍,我们对目前的项目工程化有了大体了了解,那么其中,在第二阶段的工程化演进中,有一个重要的工程设计理念诞生,他就是著名的 MVC 设计模式,简单点,MVC 其实就是为了项目工程化的一种分工模式;
jinghong
2020/05/12
7.5K0
Vue
vue $attrs的使用
在上面提过,如果给子组件传递的数据,子组件不使用props接收,那么这些数据将作为子组件的特性,这些特性绑定在组件的HTML根元素上,在vue2.40版本之后,可以通过inheritAttrs = false 来控制这些特性是否显示在dom元素上 如:案例中父组件给子组件传递的row和isShow,子组件没有使用props接收,这个2个数据直接作为HTML的特殊属性。子组件使用inheritAttrs = true,那么特性显示在dom上,如果设置为false,那么特性不显示在dom上
全栈程序员站长
2022/11/02
1.5K0
vue $attrs的使用
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格
蒋川@卡拉云
2022/06/08
15.4K0
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格
手把手教你实现一个Vue无限级联树形表格(增删改)
平时我们可能在做项目时,会遇到一个业务逻辑。实现一个无限级联树形表格,什么叫做无限级联树形表格呢?就是下图所展示的内容,有一个祖元素,然后下面可能有很多子孙元素,你可以实现添加、编辑、删除这样几个功能。
马克社区
2022/05/11
1.7K0
Element Table 业务封装与思考
新项目 Elemnet UI 组件业务封装,封装需求满足后期不修改业务代码,直接更新前端的封装组件的UI库代码即可实现无缝切换UI库的需求。目前新项目的功能产品还在梳理,项目第一期还未开始,前端技术小组先行进行的组件封装。
草帽lufei
2022/07/29
5900
Element Table 业务封装与思考
前端成神之路-vue前端项目05
1.完成参数管理 2.推送代码到码云 3.制作商品列表页面 4.制作商品添加页面
海仔
2021/05/06
1.6K0
6. Element Plus前端组件库
Element-UI 是基于 Vue 开发的一套UI组件库,提供丰富网页开发的组件,可快速开发网站,降低前端开发成本。
alexhuiwang
2023/04/24
5.7K0
6. Element Plus前端组件库
猿实战13——实现你没听说过的前台类目
上几个章节,猿人君教会了你实现了属性/属性值和后台类目的绑定关系,今天,猿人君就带你来实现前台类目。
山旮旯的胖子
2020/09/23
7080
猿实战13——实现你没听说过的前台类目
深入探讨 ElementUI 动态渲染 el-table
在前端开发中,表格是不可或缺的一部分。无论是数据展示、数据录入,还是数据分析,表格都扮演着重要的角色。而在 Vue.js 生态系统中,ElementUI 提供了一个强大且灵活的表格组件——el-table。本文将带你深入了解如何使用 ElementUI 动态渲染 el-table,并详细探讨其原理及实现过程。
繁依Fanyi
2024/07/03
1.3K0
推荐阅读
相关推荐
vue的修饰符!sync和el-dialog弹窗组件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验