目录
Vue 非单文件组件 和 单文件组件 的区别与实践对比
✨ 引言
一、非单文件组件
1. 基本使用
2. 注意:
3. 组件的嵌套
4. 关于VueComponent:
5. 一个重要的内置关系(有点难理解)
二、 单文件组件
那就期待下一章!!!总结不易~ 本章节对我有很大收获 希望对你也是!!!!
在学习 Vue 的过程中,我们经常会接触到两种不同的写法:一种是在 HTML 中用 标签直接使用 Vue,另一种则是用
.vue
文件编写的单文件组件。那么它们有什么区别?我们又该在什么场景下选择哪种方式呢?
Vue中使用组件的三大步骤:
一、定义组件(创建组件)
二、注册组件
三、使用组件(写组件标签)
1、如何定义一个组件?
使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但也有点区别;
区别如下:
1.el不要写,为什么? ——— 最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器。
2.data必须写成函数,为什么? ———— 避免组件被复用时,数据存在引用关系。
备注:使用template可以配置组件结构。
2、如何注册组件?
1.局部注册:靠new Vue的时候传入components选项
2.全局注册:靠Vue.component('组件名',组件)
3、编写组件标签:
{{msg}}
1.关于组件名:
一个单词组成:
多个单词组成:
备注:
2.关于组件标签:
3.一个简写方式:
欢迎来到{{msg}}学习
// 定义student组件
const student = {
template: `
学生名称:{{studentName}}
学生年龄:{{age}}
`,
data() {
return {
studentName: 'wshha',
age: 18
}
}
}
// 定义school组件
const school = {
template: `
学校名称:{{schoolName}}
学校地址:{{address}}
`,
data() {
return {
schoolName: '武汉传媒学院',
address: '湖北武汉'
}
},
// 注册组件(局部)
components: {
student
}
}
// 定义hello组件
const hello = {
template: `
欢迎来到{{name}}学习!
`,
data() {
return {
name: '武汉传媒学院'
}
}
}
// 定义app组件
const app = {
template: `
`,
components: {
school,
hello
}
}
new Vue({
template: `
`,
el: '#root',
components: {
app
}
})
(1).组件配置中:
data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是【VueComponent实例对象】。
(2).new Vue(options)配置中:
data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是【Vue实例对象】。
5. VueComponent的实例对象,以后简称vc(也可称之为:组件实例对象)。
Vue的实例对象,以后简称vm。
可以分为4个部分:小组件 Students.vue、School.vue 和 index.html 以及 main.js 最后将两个小组件都放入App.vue进行整合
App.vue: 进行组件引入
main.js:进行引入组件后调用
import App from './App.vue'
new Vue({
el:'#root',
template:` `,
components:{App},
})
写到这里, 留一个悬念 其实这里并跑不起来 !必须要在脚手架的环境下才能运行 ~