Vue组件化的理解

1,585 阅读1分钟

组件化得背景

如果我们将一个页面中所有的处理逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。我们讲一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,这就形成了组件化。

定义

组件是可复用的 Vue 实例。

优点

可以增加代码的复用性、可维护性和可测试性。提高开发效率, 方便重复使用,简化调试步骤,提升整个项目的可维护性,便于协同开发,是高内聚、低耦合代码的实践。

使用场景

  • 通用组件:实现最基本的功能,具有通用性和复用性。例如按钮组件、布局组件等
  • 业务组件:完成具体的业务,具有一定的复用性。例如登录、轮播图、提示信息等
  • 页面组件:组织应用各部分的独立内容,需要根据条件切换页面内容。例如列表页、详情页

组件设计

如何使用组件

  • 注册:Vue.component(),component选项,单文件
  • 通信:props、$emit('')/$onprovide/inject,$children/$parent/$root/$attrs/$listeners
  • 内容分发:<slot>、<template>、v-slot

组件的本质

vue中的组件经过如下过程:

 组件配置 => VueComponent实例 => render() => Virtual Dom => Dom

所以组件的本质是产生虚拟Dom

注册组件的步骤

  • 组件的使用分成三个步骤:

    • 创建组件构造器:调用Vue.extend()方法
    • 注册组件:调用Vue.component()方法
    • 使用组件:在Vue实例的作用范围内
<template>
     // 3.使用组件
    <my-component></my-component>
</template>
<script>
// 1.创建组件构造器对象
 const cpnC = Vue.extend({
   template: `
     <div>
       <h2>我是标题</h2>
       <p>我是内容, 哈哈哈哈</p>
       <p>我是内容, 呵呵呵呵</p>
     </div>`
 })
 // 2.注册组件
 Vue.component('my-component', cpnC)
 
 const app = new Vue({
   el: '#app',
   data: {
     message: '你好啊'
   }
 })
</script>