为什么我的Vue组件同时加载时只显示了一个?
时间:2024-12-02 18:51:55 465浏览 收藏
最近发现不少小伙伴都对文章很感兴趣,所以今天继续给大家介绍文章相关的知识,本文《为什么我的Vue组件同时加载时只显示了一个?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
vue组件同时加载问题
在vue应用程序中,您定义了两个自定义组件<header-bar>和<nav-bar>。但是,您发现在同时加载这两个组件时,只会显示一个组件。
问题根源
问题在于您在<script>标签中错误地将组件声明为自闭合标签:
<script src="../assets/scripts/base.js"></script> <script src="../assets/scripts/index.js"></script> <script> var vm = new vue({ el:".content", // 这里有两个点 data:{} }) </script>
vue组件应声明为非自闭合标签,如下所示:
<script src="../assets/scripts/base.js"></script> <script src="../assets/scripts/index.js"></script> <script> var vm = new vue({ el:".content", data:{} }) </script>
此外,在您的<div>元素中,您将组件声明为自闭合标签:
<div class="content"> <header-bar/> // 这里有一个自闭合标签 <nav-bar/> // 这里有一个自闭合标签 </div>
正确的写法是:
<div class="content"> <header-bar></header-bar> // 这里是非自闭合标签 <nav-bar></nav-bar> // 这里是非自闭合标签 </div>
修正后代码
应用这些更正后,以下是修改后的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="https://unpkg.com/vue"></script> <title>Document</title> </head> <body> <div class="content"> <header-bar></header-bar> <nav-bar></nav-bar> </div> </body> <script> Vue.component("header-bar", { data: function() { return { homeHref: 'https://www.cnblogs.com', logo: 'https://cn.vuejs.org/images/logo.png', title: 'Vue官网图标', hotTel: '实例' } }, template: ` <header> <div class="heading"> <a :href="homeHref" class="logo"> <img :src="logo" :alt="title" /> </a> <div class="hotphone"> <div class="icon"></div> <div class="text"> <h2>全国免费加盟热线:</h2> <h1>{{hotTel}}</h1> </div> </div> </div> </header> ` }); Vue.component("nav-bar", { data: function() { var n = 0; if (window.navActive) { n = window.navActive; } return { navList: [{ href: 'https://www.cnblogs.com', title: '博客园' }], navActive: n } }, template: ` <nav> <div class="navbar"> <template v-for="(nav,index) in navList"> <a :href="nav.href" class="navmenu" v-html="nav.title"></a> </template> </div> </nav> `, mounted: function() { $("a.navmenu").eq(this.navActive).addClass("active"); } }); new Vue({ el: '.content', }) </script> </html>
到这里,我们也就讲完了《为什么我的Vue组件同时加载时只显示了一个?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
相关阅读
更多>
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
225 收藏
-
421 收藏
-
331 收藏
-
102 收藏
-
356 收藏
-
492 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习