第5章 深入了解Vue组件 5.1什么是组件化开发 组件化开发是Vue.js框架的核心特性之一,也是目前前端技术框架中最常见的一种开发模式。在Vue.js中,组件就是一个可以复用的Vue实例,拥有独一无二的组件名称,可以扩展HTML元素,使用组件名称作为自定义的HTML标签。 在Vue.js项目中,每个组件都是一个Vue实例,所以组件内的属性选项都是相同的,例如data、computed、watch、methods及生命周期钩子等。仅有的例外是像el这样实例特有的选项。 在很多场景下,网页中的某些部分是可以复用的,例如头部导航、猜你喜欢、热点信息等。我们可以将网站中能够重复使用的部分设计成一个个组件,当需要的时候,直接引用这个组件即可。 Vue组件化开发有别于前端传统的模块化开发。模块化是为了实现每个模块、方法的单一功能,一般通过代码逻辑进行划分,而组件化开发,更多的是实现前端UI的重复使用。 5.2Vue自定义组件 在使用Vue CLI工具创建的项目中,src目录是用来存放项目源码的,在src目录下会自动创建两个子目录,一个是src/views 目录,另一个是src/components 目录。这两个子目录都是用来创建组件的,但是为了区分组件的功能,一般在src/views目录下创建的是视图组件,而在src/components目录下创建的是公共UI组件。 我们可以在src/views 目录下创建一个Home.vue的视图组件,代码如下: 然后将Home.vue组件引入项目的根组件App.vue中,代码如下: 在App.vue根组件中使用components选项注册自定义组件,完成上面代码后启动项目,在浏览器中运行的效果如图5.1所示。 图5.1在浏览器中运行的效果 5.2.1组件的封装 在项目的开发中,很多时候需要将某些UI部分封装成一个独立的组件,这部分UI可以是一个页面中的模块,例如商品列表,也可以是一个很小的部件,例如按钮。对于这种常用的UI元素可以创建一个组件并放到components目录下。 在src/components目录下新建一个Button.vue文件,代码如下: 在上面的代码中,