0

0

Vue.js中使用动态组件的方法

青灯夜游

青灯夜游

发布时间:2020-09-28 17:28:49

|

4676人浏览过

|

来源于logrocket

转载

Vue.js中使用动态组件的方法

本文介绍了如何在Vue.js中引用组件中的HTML元素。您可以通过使用Vue路由器或创建动态组件来切换视图或组件模板。

Vue路由器用于在DOM中的视图或组件模板之间导航。要使用Vue路由器,请在route组件中定义路由,并向Vue表明应该在事件(如单击)上挂载新组件。

这是处理用户界面内的边栏和菜单组件中的导航的正确方法。

如果您希望在DOM中挂载的两个任意组件之间进行切换而不需要创建路由,那么您可能需要使用动态组件。

立即学习前端免费学习笔记(深入)”;

动态组件

Vue动态组件允许用户在两个或多个组件之间进行切换而无需路由,甚至在切换回初始组件时保留数据状态。

其核心思想是让用户在不使用路由器的情况下动态地挂载和卸载用户界面中的组件。

为什么动态组件很重要?

在设计用户界面时,您需要某种形式的灵活性来显示或隐藏基于应用程序状态的嵌套组件。动态组件以高效、简单的方式提供了这个平台。

该特性为您节省了大量代码,因为您可以使用v-ifv-else等Vue条件结构轻松实现动态组件。您可以使用条件结构来实现动态组件,方法是使用占位符来轻松地将逻辑绑定到组件。

这种方法可以确保您的演示始终是干净和明确的。

才能在Vue中创建动态组件。在你的电脑中,你将需要以下资料:

已安装Node.js版本10.x及更高版本。 您可以通过在终端/命令提示符下运行以下命令来验证您是否拥有Node.js 10.x版:

node -v

一个代码编辑器(推荐使用Visual Studio)。

Vue的最新版本,已全局安装在您的计算机上。

您的计算机上已安装Vue CLI 3.0。 为此,请先卸载旧的CLI版本:

npm uninstall -g vue-cli

然后,安装一个新的:

npm install -g @vue/cli

动态组件的语法

Vue为动态组件提供了一个特殊的模板元素,简称为component。语法是这样的:

组件元素也可以是一个自关闭标签:

第一个选项最适合浏览兼容性。

演示

下载starter项目并在VS代码中打开它,以获得一些动态组件的示例。starter项目允许您访问一个现有的测试组件,创建第二个测试组件,并在两者之间进行切换。

mallcloud商城
mallcloud商城

mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提

下载

导航到components文件夹并创建一个新文件。 将文件命名为Test2.vue并将以下代码块复制到文件中:




现在您有了第二个组件,转到App.vue文件并注册该组件:


两个测试组件现在嵌套在根应用程序组件中。如果只想挂载一个组件,然后动态切换到另一个组件,则必须创建一个动态组件。

将下面的代码块复制到app.vue文件的模板部分:

接下来,使用以下serve命令运行应用程序:

npm run serve

您将看到只显示Test 1组件。

如果仅在模板中指定了Test 1元素,这正是您将获得的响应。 为了使组件具有动态性,我们可以使用v-bind指令将其绑定到set属性。


您的组件现在与数据中的组件属性绑定。如果您将组件切换到Test2,它将自动挂载Test2组件。

在浏览器上测试一下。

添加方法调用

您可以添加方法调用来控制组件动态显示的逻辑。组件元素允许您访问Vue实例中的每个构造。

下面是一个切换这两个组件的小方法的例子:


切换时保持数据值有效

在Vue团队构建这个特性时,他们选择扩展它的功能,包括存储每个状态的数据值。

为了存储这些数据,Vue提供了一个名为keep-alive的模板元素。使用keep-alive,您可以确保在从一个组件切换回另一个组件后,您的组件状态保持原样。

例如,如果您单击某个链接或在文本框中输入一个值,然后切换组件,那么keep-alive会将您带回到切换回来时使用的相同链接或文本框。

要启用keep-alive,请转到app.vue文件的模板部分,并使用keep-alive元素包装组件元素:


  

要查看它是否工作,请将表单元素添加到测试中。vue文件,在模板部分添加如下代码块:

保存所有项目文件后,再次运行应用程序。在输入框中键入,切换组件,并切换回原始组件。您将注意到在切换组件之前输入的值与之前输入的值完全相同。

Vue.js中使用动态组件的方法

结论

本文介绍了如何在Vue.js工作流中使用动态组件。您现在还可以通过keep-alive扩展组件元素的能力。

相关推荐:2020年前端vue面试题大汇总(附答案)vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程入门!!

Vue.js中使用动态组件的方法Vue.js中使用动态组件的方法Vue.js中使用动态组件的方法1.gif

相关专题

更多
node.js调试
node.js调试

node.js调试可以使用console.log()输出调试信息、断点调试和第三方调试工具。详细介绍:1、console.log()输出调试信息,通过在代码中插入console.log()语句,开发人员可以在控制台输出变量的值、函数的执行结果等信息,以便观察代码的执行流程和状态;2、断点调试,可以在代码中设置断点,以便在特定位置暂停代码的执行,观察变量的值和执行流程等。

347

2023.09.19

JavaScript 全栈开发基础(Node.js + 前端)
JavaScript 全栈开发基础(Node.js + 前端)

本专题系统介绍 JavaScript 在全栈开发中的核心知识结构,涵盖 Node.js 基础、Express/Koa 接口构建、前端交互设计、模块化与包管理、数据库连接、前后端数据通信与部署流程。通过完整项目示例,帮助学习者掌握从浏览器到服务器的一体化开发能力,实现真正意义上的全栈入门。

93

2025.11.26

vue.js为什么报错
vue.js为什么报错

vue.js报错的原因:1、语法错误;2、组件使用不当;3、数据绑定问题;4、生命周期钩子使用不当;5、插件或依赖问题;6、路由配置错误;7、异步操作处理不当等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

120

2024.03.11

vue.js插槽有哪些用
vue.js插槽有哪些用

vue.js插槽的作用:1、提高组件的可重用性;2、实现组件的灵活布局;3、实现组件间的数据传递和交互;4、促进组件的解耦和模块化。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2024.03.11

vue.js怎么带参数跳转
vue.js怎么带参数跳转

vue.js带参数跳转的方法:1、定义路由;2、在组件中使用路由参数;3、进行带参数的跳转。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

90

2024.03.11

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

608

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

646

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

466

2023.07.31

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

61

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 6.5万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号