2 Vue组件化编程
创始人
2025-06-01 16:50:18
0

2.1. 模块与组件、模块化与组件化

在这里插入图片描述
在这里插入图片描述
模块

  1. 理解:向外提供特定功能的 js 程序,一般就是一个 js 文件
  2. 为什么:js 文件很多很复杂
  3. 作用:复用、简化 js 的编写,提高 js 运行效率

组件

  1. 定义:用来实现局部功能的代码和资源的集合(html/css/js/image…)
  2. 为什么:一个界面的功能很复杂
  3. 作用:复用编码,简化项目编码,提高运行效率

模块化
当应用中的 js 都以模块来编写的,那这个应用就是一个模块化的应用
组件化
当应用中的功能都是多组件的方式来编写的,那这个应用就是一个组件化的应用

2.2. 非单文件组件

非单文件组件:一个文件中包含有 n 个组件
单文件组件:一个文件中只包含有 1 个组件

2.2.1. 基本使用

Vue中使用组件的三大步骤

1. 定义组件

  • 使用 Vue.extend(options) 创建,其中 optionsnew Vue(options) 时传入的 options 几乎一样,但也有点区别
    1. el 不要写,因为最终所有的组件都要经过一个 vm 的管理,由 vm 中的 el 才决定服务哪个容器
    2. data 必须写成函数,避免组件被复用时,数据存在引用关系

2. 注册组件

  1. 局部注册:new Vue()的时候options传入components选项
  2. 全局注册:Vue.component(‘组件名’,组件)

3. 使用组件

编写组件标签如

在这里插入图片描述

注册组件

  • 局部注册:靠new Vue的时候传入components选项
  • 全局注册:靠Vue.component(‘组件名’,组件)

局部注册(只有注册了那个组件的才能使用)

全局注册(所有的都可以使用)

使用组件



{{msg}}



2.2.2 组件的注意事项

关于组件名

  • 一个单词组成
    • 第一种写法(首字母小写):school
    • 第二种写法(首字母大写):School
  • 多个单词组成
    • 第一种写法(kebab-case 命名):my-school
    • 第二种写法(CamelCase 命名):MySchool(需要Vue脚手架支持)
  • 备注
    • 组件名尽可能回避HTML中已有的元素名称,例如:h2、H2都不行
    • 可以使用 name 配置项指定组件在开发者工具中呈现的名字

关于组件标签

  • 第一种写法:
  • 第二种写法:(需要Vue脚手架支持)
  • 备注:不使用脚手架时,会导致后续组件不能渲染
    一个简写方式:const school = Vue.extend(options)可简写为 const school = options,因为父组件 components 引入的时候会自动创建
	

{{msg}}

2.2.3. 组件的嵌套

在这里插入图片描述

在这里插入图片描述

2.2.4. VueComponent

关于 VueComponent

  1. school 组件本质是一个名为 VueComponent 的构造函数,且不是程序员定义的,而是 Vue.extend() 生成的
  2. 我们只需要写 ,Vue 解析时会帮我们创建 school 组件的实例对象,即Vue帮我们执行的new VueComponent(options)
  3. 每次调用 Vue.extend,返回的都是一个全新的 VueComponent,即不同组件是不同的对象
  4. 关于 this 指向
    1. 组件配置中data函数、methods中的函数、watch中的函数、computed中的函数 它们的 this 均是 VueComponent 实例对象
    2. new Vue(options)配置中:data函数、methods中的函数、watch中的函数、computed中的函数 它们的 this 均是 Vue实例对象
  5. VueComponent 的实例对象,以后简称 vc组件实例对象Vue的实例对象,以后简称vm

Vue 在哪管理 VueComponent

在这里插入图片描述

2.2.5. 一个重要的内置关系

在这里插入图片描述

例:main.js中Vue.prototype.Axios = Axios;
组件xxx.vue中this.Axios({});

2.3. 单文件组件

单文件组件就是将一个组件的代码写在 .vue 这种格式的文件中,webpack 会将 .vue 文件解析成 html,css,js这些形式。

来做个单文件组件的案例:

School.vue

Student.vue

App.vue

用来汇总所有的组件(大总管)

main.js

在这个文件里面创建 vue 实例

import App from './App.vue'new Vue({el:'#root',template:``,//因为这里没有多个标签,App就是根标签components:{App},
})

index.html

在这写 vue 要绑定的容器


练习一下单文件组件的语法

相关内容

热门资讯

文言文《师说》原文翻译 文言文《师说》原文翻译  《师说》作于唐贞元十八年(公元802年)韩愈任四门博士时,是说明教师的重要...
细柳营的翻译及原文 细柳营的翻译及原文  上自劳军。至霸上及棘门军,直驰入,将以下骑送迎。已而之细柳军,军士吏被甲,锐兵...
文言文桃花源记翻译 文言文桃花源记翻译  导语:桃花源是一种意境,是一种理想,是一个美梦,是一个精神乐园.未必要苦苦寻求...
《西江月·明月别枝惊鹊》辛弃... 《西江月·明月别枝惊鹊》辛弃疾宋词注释翻译赏析  作品原文  西江月·夜行黄沙道中  辛弃疾  明月...
《鱼我所欲也》《万事莫贵于义... 《鱼我所欲也》《万事莫贵于义》比较阅读  《鱼我所欲也》《万事莫贵于义》比较阅读  【甲】鱼,我所欲...
你是人间的四月天原文 你是人间的四月天原文  黄昏吹着风的软,星子在无意中闪,细雨点洒在花前。下面是小编整理的范文,欢迎查...
读《桃花源记》有感 读《桃花源记》有感(通用15篇)  读完一本名著以后,想必你一定有很多值得分享的心得,是时候抽出时间...
《滕王阁序》全诗及名句赏析 《滕王阁序》全诗及名句赏析  无论是在学校还是在社会中,大家总少不了接触作文吧,通过作文可以把我们那...
描写拿的词语 描写拿的词语  1、撒水拿鱼、鹰拿燕雀、拿班作势  2、拿乔、拿斗、缉拿、拿大  3、一地胡拿、碗里...
小学生学雷锋图画 小学生学雷锋图画  雷锋是平凡的,但也是伟大的,同时也是最高尚的。下面是小学生学雷锋图画,和小编一起...
《史记:滑稽列传》原文及注释 《史记:滑稽列传》原文及注释  一、原文:  淳于髡者,齐之赘婿也。长不满七尺,滑稽多辩,数使诸侯,...
《答谢民师书》苏轼文言文原文... 《答谢民师书》苏轼文言文原文注释翻译  在平凡的学习生活中,相信大家一定都记得文言文吧,文言文是中国...
红楼梦读书感悟 红楼梦读书感悟(精选17篇)  在学习、工作、生活中,总有一些事或人让我们感触颇深,这个时候,写篇关...
兰亭集序朗读带字幕 兰亭集序朗读带字幕  关于《兰亭序》,世间流传着形形色色的逸事趣闻。据说当时王羲之写完之后,对自己这...
易经解读:“田”字的文化意义 易经解读:“田”字的文化意义  “于是始作八卦,以通神明之德,以类万物之情。”所以始作八卦,开始画成...
高考语文文言文常识   高考语文中的文言文阅读往往是同学们答题的难点,高考语文文言文常识。下面是小编搜集整理的2017高...
书戴嵩画牛/杜处士好书画原文... 书戴嵩画牛/杜处士好书画原文、翻译及赏析  书戴嵩画牛/杜处士好书画 宋朝 苏轼  蜀中有杜处士,好...
《将进酒》 读后感 《将进酒》 读后感(精选4篇)  品味完一本名著后,相信大家的收获肯定不少,此时需要认真地做好记录,...
易经:仰则观象于天,俯则观法... 易经:仰则观象于天,俯则观法于地  古者包羲氏之王天下也,仰则观象于天,俯则观法于地,观鸟兽之文与地...
再别康桥全文及赏析 再别康桥全文及赏析  《再别康桥》是现代诗人徐志摩脍炙人口的诗篇,是新月派诗歌的代表作品。以下是小编...