Vue21 组件
阅读原文时间:2023年07月08日阅读:2

1 模块及组件简介

  组件(component)是vue.js最强大的功能之一。组件的作用就是封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能够调用这个功能体。 每个组件都是Vue的实例对象。 我们实例化的Vue对象就是一个组件,而且是所有组件的根组件。

  组件可以很好地把代码分成一块块的,清洗明了,并且能够提高复用性

2 定义组件语法

  1)组件中的data是一个函数,不是对象,这样子可以保证不同地方是有同一个组件data都是新的对象

  2)组件中必须有一个唯一的根元素

  3)模板中内容较多时候建议使用模板字符串

  4)局部注册的子组件只能在注册过的父组件中使用

  5)components是注册组件的意思

  6)组件名推荐全部小写或者首字母大写

3 组件的嵌套

组件的嵌套

4 VueComponent

  1)组件的本质是一个名为VueComponent的构造函数,并且不是程序员定义的,而是Vue.extend函数生成的。并且每次生成的都是不一样的VueComponent的构造函数。

  2)每当我们使用组件(写组件标签时,),vue解析到组件标签时,会帮我们使用VueComponent构造函数创建一个VueComponent实例对象,帮我们执行 new VueComponent(options)
  3)在组件配置中,data函数,methods中配置的函数,watch中配置的函数,computed中配置的函数的this指向的都是VueComponent组件对象。

5 VueComponent.prototype.__proto__===Vue.prototype

这个内置关系让组件实例对象可以访问到Vue原先上的属性和方法。因为Vue和VueComponent在很大程度上都是相同的(95%),所以像$mount和$watch方法,定义在Vue的原型对象上,然后VueComponent的原型对象的原型对象指向Vue的原型对象,VueComponent和Vue的实例就可以使用同一份方法和属性,而不用写两份一样的。

6 单文件组件示例

1)school组件

2)student组件

3)app组件,作为龙头老大

4)main.js

import App from './App.vue'

new Vue({
template:``,
el:'#root',
components:{App}
})

5)index.html


单文件组件练习