Vue组件介绍与生命周期¶
约 1026 个字 109 行代码 1 张图片 预计阅读时间 5 分钟
何为Vue组件和组件化¶
组件,就是将一套代码(JavaScript逻辑+HTML逻辑+CSS逻辑)放在单独的一个.vue
文件中,当需要使用时使用导入的方式在指定位置引入该文件
有了组件之后,后续的开发就从单.vue
文件中开发转换变为多.vue
文件开发,这样可以确保不同的模块相互不影响,也便于同一段逻辑的多次复用
根组件¶
在Vue中,根组件就是App.vue
文件,前面写的所有的代码也是在App.vue
中编写。根组件最大的特点就是作为Vue渲染的入口
使用组件¶
使用组件一般需要进行下面的步骤:
- 创建组件:即创建一个单独的
.vue
文件包裹指定的逻辑 - 导入组件:在需要使用组件的
.vue
中导入文件,这里分为全局导入和部分导入 - 注册组件:如果是部分导入的组件,就不需要注册组件,否则就需要对组件进行注册
- 使用组件:像使用基本的HTML标签一样使用组件
导入组件时,使用默认导入的语法,因为组件都有默认导出,导入的名称一般考虑使用大驼峰的形式
使用组件时有两种使用方式:
- 单闭合标签:
<组件名 />
- 双标签:
<组件名></组件名>
需要注意的是,单标签一定不能省略最后的闭合标记/
,否则会报错
使用组件时的组件名可以不和默认导入的名称格式一致,一般有两种写法:大驼峰和烤串法
HTML | |
---|---|
1 |
|
HTML | |
---|---|
1 |
|
部分导入¶
Vue | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
Vue | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
全局导入¶
全局导入需要在main.js
中完成导入和注册,一旦导入就可以在所有的.vue
文件中使用
JavaScript | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Vue | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
组件生命周期¶
介绍¶
组件声明周期表示一个组件从创建到销毁的过程,整个过程是不可逆的
在Vue中,组件的生命周期分为4个阶段:
- 创建阶段:创建响应式数据和函数
- 挂载阶段:将组件模板渲染到页面中(即将
template
标签中的内容插入到实际DOM中) - 更新阶段:当组件数据发生变化时,重新渲染页面
- 销毁阶段:组件被移除时,执行清理操作(从DOM中移除)
在上面四个阶段中,每一个阶段对应着两个组件生命周期钩子函数,所谓生命周期钩子函数就每一个阶段自动执行的函数。所以钩子本质是一个函数,只是这个函数并不需要由开发者手动调用,而如果需要在某一个周期执行某一个行为,开发者可以将该行为写入到对应阶段的钩子函数中,等待Vue自动调用便可以实现对应的效果。每一个阶段对应的钩子函数如下:
- 创建阶段:
beforeCreate()
和created()
- 挂载阶段:
beforeMount()
和mounted()
- 更新阶段:
beforeUpdate()
和updated()
- 销毁阶段:
beforeUnmount()
和unmounted()
另外,还有一个特殊的钩子函数:setup()
,该函数是Vue代码的入口
接下来为了便于演示钩子函数的执行,考虑先使用选项式API而再考虑使用组合式API
组合式API和选项式API
- 选项式API是Vue 2中的传统写法,也是Vue 3中仍然支持的一种编写组件的方式。它通过在组件对象中定义不同的选项(如
data
、methods
、computed
、watch
等)来组织代码 - 组合式API是Vue 3引入的新特性,通过
setup
函数来组织组件逻辑。它提供了更灵活的代码组织方式,特别适合复杂组件的逻辑复用
Vue | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
Vue | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
组件生命周期过程示意图如下: