组件化开发
注册组件的基本步骤
- 创建组件构造器:调用
Vue.extend()
- 注册组件:调用
Vue.component()
创建全局组件;将组建构造器放在Vue实例当中来创建局部组件 - 使用组件:在Vue实例范围内使用组件
父组件与子组件
通信
通过Pass props
向子组件传递数据; 通过$emit Events
向父组件发送消息
props用法
props值的方式有两种:
- 字符串数组:数组中的字符串就是传递时的名称
- 对象:可以设置传递时的类型,也可以设置默认值
事件用法
- 在子组件中,通过
$emit()
来触发事件 - 在父组件中,通过
v-on
来监听子组件事件
直接访问
- 父组件访问子组件:使用
$children
或者$refs
$children
是一个数组类型$refs
和$ref
指令一起使用- 通过
ref
给某个子组件绑定特定ID - 通过
this.$refs.<ID>
来访问
- 通过
- 子组件访问父组件:使用
$parent
(尽量避免使用)
slot
- 在子组件中,使用特殊元素
<slot>
为子组件开启一个插槽 - 插槽中的内容取决于父组件如何使用
<slot>
中的内容显示:- 如果没有在父组件中插入任何其他内容,那么就显示默认内容
- 否则,用插入内容替代
- 具名插槽:给
slot
元素一个name
属性
动态组件
异步组件
语法糖
- 注册组件: 直接使用一个对象来代替
Vue.extend()
创建的组件 - 书写模板: 使用
<script type="text/x-template">
,<template>
来分离HTML