实现局部功能代码和资源的集合(将html,css,js,视频、文字样式等资源统一起来)
复用率高,好维护
单文件组件 .vue 一个文件只有一个组件
创建组件 :
const school = Vue.extend({
data() {
return {
studentName: "小王",
age: 18
}
}
})
//可以简写为
const school = {
data() {
return {
studentName: "小王",
age: 18
}
}
}Vue.extend({})返回一个构造函数vueComponent

可以在组件中配置name:‘school’,在vue开发者工具中就会显示该组件名
data(){
return{
a:1,
b:3
}
}这样当不同的地方使用该组件时,都会返回一个全新的对象,别的地方修改对象数据,互不影响
每一个组件就是一个构造函数vueComponent,是Vue.extend生成的
当在模板中写时,vue会帮我们创建一个vc的实例对象,即new VueComponent({options}) options是Vue.extend({})中配置的属性
不同的组件是不同的构造函数vueComponent,虽然都差不多,但是return出来的,是不同的vueComponent
vc和vm99%相似,都有数据代理,数据监测,methods,computed…
区别:vm有el来确定放置DOM元素的位置,vc没有el
vc中的data必须写成函数式,vm的data可以直接写成对象(不在脚手架中)

为了让vc也可以访问到vue原型上的属性和方法
构造函数有一个显式原型属性prototype来找到构造函数原型对象
构造函数的实例对象有一个隐式原型属性–proto–也是指向构造函数的原型对象
构造函数的原型对象有一个–proto–属性来指向object的原型对象