Vue|非单文件组件

news2025/1/12 1:42:58

传统网页一些不可避免的小问题:
1.网页JS、CSS等资源依赖关系混乱,不方便维护
2.代码复用率很低
使用组件将代码进行复用,简化项目结构,提高运行效率,便于维护

  • 组件定义
    • 传统网页
    • 组件
  • 传统代码
    • 实现步骤
  • 组件代码
    • 定义组件
    • 注册组件
      • 局部注册
      • 全局注册
    • 使用组件
    • 避坑

组件定义

组件即为实现应用中局部功能代码(css、html、js)和资源(mp3、mp4、字体资源)的集合
模块化:当应用中的JS都是以模块来编写的,那这个应用就是一个模块化的应用
组件化:当应用中的JS都是以组件来编写的,那这个应用就是一个组件化的应用

传统网页

传统网站如需要新建一个页面,需要头部、中间内容部分、底部,每次新建页面都得复制来一套,引用的外部样式也是如此;如果有一处需要更改,那么所复制的每个页面都需要更改,还有着遗漏某个隐藏极深的页面漏改的可能。

在这里插入图片描述

组件

组件是独立和可复用的代码组织单元,组件系统是vue核心特性之一,它让开发者使用小型、独立和通常可复用的组件构建大型应用,使得前端开发的过程变成搭积木的过程。

在这里插入图片描述

传统代码

实现步骤

新建一个页面并创建好页面容器及对应的Vue实例,在data中定义三个变量如下

在这里插入图片描述

 data: function () {
	 return {
	       header:'页面头部',
	       content: '页面内容',
	       footer:'页面底部'
	   };
},

在页面中通过差值语法的方式将数据渲染展示

在这里插入图片描述

<div class="box">{{header}}</div>
<hr />
<div class="box">{{content}}</div>
<hr />
<div class="box">{{footer}}</div>

在这里插入图片描述

这样看上去也没有什么问题,影响貌似也不大,但是如果现在让你再实现一个页面,保持结构不变的同时修改数据,那是不是只能把这段代码复制粘贴呢?这样就违背了组件的作用,组件是把代码进行复用而不是复制

组件代码

定义组件

使用Vue.extend(option)创建,格式与new Vue时几乎一样,但是这里有两点要注意;
一是不需要写el,因为el最终是由vm来决定的、二是data必须写成函数,这样组件复用时互不干扰

在这里插入图片描述

通过template字段直接将html编写在里面即可

const header = Vue.extend({
            template:`
                <div>
                    <span>{{header}}</span>
                </div>
            `,
            data(){
                return {
                    header:'页面头部'
                }
            }
        });

注册组件

局部注册

在new Vue中使用components选项即可实现组件局部注册

在这里插入图片描述

// 创建vue实例
        const vm = new Vue({
            el: '#root',
            //2.组件注册
            components:{
                headercom:header,
                contentcom:content,
                footercom:footer,
            }
        });

使用局部注册时,如果页面上有两个容器对应着两个vm,那只有注册过的vm才能使用这个组件,如果另外一个vm需要使用也需要再次注册才能使用,但是这样代码又重复了,所以有了下面的全局注册

在这里插入图片描述

全局注册

全局注册方法:使用Vue.component(‘’,‘’),它有两个参数,第一个是组件名,第二个组件的指向,也就是你定义好的组件

在这里插入图片描述

Vue.component('name',name);

使用组件

定义跟注册好组件后即可在页面进行使用,通过编写组件标签的形式即可

在这里插入图片描述

在这里插入图片描述

<headercom></headercom>
<hr />
<contentcom></contentcom>
<hr />
<footercom></footercom>

避坑

1.组件注册时使用大小写命名会报错,同时组件名称不要使用一些html标签名称
2.components注册时单词拼写容易错误
3.单个vm中存在多个components

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊如何利用spring插件来实现策略模式

前言 偶然的机会发现spring有个spring-plugin&#xff0c;官网对它的介绍是 Spring Plugin provides a more pragmatic approach to plugin development by providing the core flexibility of having plugin implementations extending a core system’s functionality but o…

linux上使用系统安装和Docker安装mysql的两种方式

一、安装到linux 1、安装mysql-server 1、在安装之前查看下系统是否已经安装了mysql ls /usr/share2、安装mysql-server sudo apt-get install mysql-server3、再次查看&#xff0c;发现多了个mysql ls /usr/share | grep mysql //在ls打印结果中搜索mysql关键字4、登陆 在…

chatgpt赋能Python-python_lamb

Python Lambdas - 强大的匿名函数 Python是一个充满了强大特性的编程语言&#xff0c;其中之一就是Python的lambda函数。在这篇文章中&#xff0c;我们将介绍Python lambdas的基础知识、使用方法、优缺点以及与普通函数的区别。 什么是Python Lambda函数 Python Lambda函数&…

咖啡「江湖」:从1999到2023

【潮汐商业评论/原创】 “我现在几乎每天都要来杯咖啡&#xff0c;哪怕周末在家休息也是。上班喝美式是为了提神&#xff0c;在家做拉花是享受生活&#xff0c;平时和朋友出去大概率还是会选择咖啡馆&#xff0c;毕竟看起来有氛围还不发胖。”Allen说道。 事实上&#xff0c;…

地铁车辆项目RAMS管理

导读 由于RAMS管理可以为轨道交通提供安全保障&#xff0c;提高运行效率&#xff0c;该管理模式在国外已得到广泛应用&#xff0c;并取得了良好成效。因此引入RAMS管理是确保城市轨道交通车辆安全发展的必然趋势。本文分析地铁车辆项目RAMS管理的必要性&#xff0c;阐述了项目各…

不要做一个透明人:展现真实的自己

✨求关注~ &#x1f600;博客&#xff1a;www.protaos.com 目录&#xff1a; 引言&#xff1a;透明人的困境透明人的定义与特征 2.1 透明人的追求与代价 2.2 社交媒体与透明人现象的关系透明度的局限性 3.1 自我保护与隐私权 3.2 虚假的透明度和个人形象管理重建真实的自我 4.…

城市内涝的原因和解决措施,内涝监测预警助力城市防涝度汛

城市内涝是城市化进程中最遇到的自然灾害&#xff0c;城市内涝不仅会对市民生活造成困扰&#xff0c;也会对城市基础设施和经济发展产生不利影响。因此&#xff0c;及时监测城市内涝现象&#xff0c;对于城市管理和城市安全具有重要意义。本文将深入探讨城市内涝的原因以及针对…

docsify安装(线上文档)

01、docsify 是什么 一款神奇的文档生成利器 自从有了 Markdown&#xff0c; 我就再没用过富文本编辑器&#xff0c;因为 Markdown 的书写有一种心流的感觉。很多博客平台都支持 Markdown 了&#xff0c;即便是不支持&#xff0c;也没关系&#xff0c;可以通过 mdnice 或者 Md…

亚马逊云科技推出全新即用型模型,通过机器学习在几分钟内生成见解

4月10日&#xff0c;亚马逊云科技宣布推出Amazon Amazon SageMaker Canvas中的新功能&#xff0c;这些功能可帮助业务分析师通过机器学习&#xff08;ML&#xff09;在几分钟内从数千个文档、图像和文本行中生成见解。新功能推出后&#xff0c;可以访问即用型模型&#xff0c;创…

六、数据仓库详细介绍(ETL)工具篇下

0x00 前言 上篇&#xff0c;我们介绍了五种传统 ETL 工具和八种数据同步集成工具。 数据仓库详细介绍&#xff08;五.ETL&#xff09;工具篇上 本篇&#xff0c;我们接着介绍两种新型 ETL 工具、大数据发展不同阶段产生的六种主要计算引擎、五种流程控制组件。 最后我们简单…

空间转换案例-3D导航

想要制作这么一个简单的 3D 导航栏需要了解以下几个知识 : 1.空间转换 : 从坐标轴角度除了我们熟知的 X , Y 外还会和 Z 坐标轴 构成一个立体空间, Z轴的位置与我们眼睛视线的方向相同. 空间转换的属性仍然是 transform ,所以可以给他添加 空间的 平移,旋转,缩放 等效果. 2.空…

[问]python中字典dict如何排序sorted?

文章目录 一、sorted使用二、按照keys的顺序对dict中的keys排序三、按照valuse的顺序对dict中的values排序四、按照keys的顺序对dict中的items排序五、按照values的顺序对dict中的items排序六、按照keys的顺序对dict的values排序七、按照values的顺序对dict中的keys排序八、字典…

【Http协议③】http状态码,响应报头,响应正文等知识的学习

前言: 大家好,我是良辰丫,上一篇文章中我们已经学习了http请求的一些知识,这篇文章我将带领大家去领略http响应的风采,不要着急,跟随良辰的步伐,一起去学习http.&#x1f49e;&#x1f49e;&#x1f49e; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&a…

单点登录二:登录过程使用摘要算法和加盐的意义以及demo练习

上一篇《springboot项目使用redis、springSecurity、jwt实现单点登录》写了关于单点登录的架子&#xff0c;但是没有实现密码验证的细节。这里使用盐和摘要算法来实现一个密码验证的完整过程demo。 1、依赖没变&#xff0c;还是上一篇内容那些 <dependencies><depen…

职称认定和职称评审有什么区别?甘建二告诉你

职称认定和评审有什么区别呢&#xff1f;通常大家都在说职称认定和评审不知道中间是不是有什么区别&#xff1f;今天甘建二给大家捋一捋&#xff1a; 一、职称认定 职称认定要求学历条件比较严苛的&#xff1a; 1.毕业专业与评审专业一致&#xff0c;不能跨专业认定&#xff0…

基于FPGA的自动曝光算法实现

1 概述 在机器视觉中&#xff0c;自动曝光&#xff08;Auto Exposure&#xff09;是很多成像设备的必备功能。所谓自动曝光&#xff0c;就是根据环境或拍摄物体照明强度自动调节图像传感器的曝光时间&#xff0c;使输出图像的平均灰度&#xff08;亮度&#xff09;保持在一个合…

redis安装和数据类型

关系型数据库和非关系型数据库的区别&#xff1a; ①存储结构不同&#xff0c;关系型数据库是二维表格的方式&#xff0c;非关系型数据库是键值对的形式&#xff08;文档、图文等&#xff09;&#xff1b; ②扩展方式不同&#xff0c;关系型数据库是纵向提升硬件性能&#xf…

嵌入式硬件中Printf函数的原理

作为嵌入式单片机领域小白的我&#xff0c;在查阅STM32、MSP432等串口通信的开发例程时&#xff0c; 总是能看到用 printf&#xff08;&#xff09;这个函数来进行串口的发送功能。 目录 有关printf&#xff08;&#xff09;函数需要解决的疑问&#xff1a; 一、printf&am…

34种ArcGIS常用操作技巧大汇总

概述 ArcGIS产品线为用户提供一个可伸缩的&#xff0c;全面的GIS平台。ArcObjects包含了许多的可编程组件&#xff0c;从细粒度的对象&#xff08;例如单个的几何对象&#xff09;到粗粒度的对象&#xff08;例如与现有ArcMap文档交互的地图对象&#xff09;涉及面极广&#x…

iperf3常用

iperf使用方法详解 iperf3是一款带宽测试工具&#xff0c;它支持调节各种参数&#xff0c;比如通信协议&#xff0c;数据包个数&#xff0c;发送持续时间&#xff0c;测试完会报告网络带宽&#xff0c;丢包率和其他参数。 安装 sudo apt-get install iperf3iPerf3常用的参数&am…