vue组件 vue
未完成
- slot 作用域插槽
 - 动态组件
 - 杂项
 - 自定义 表单 子组件通讯
 - prop验证
 
使用组件
全局注册和局部注册
1  | <div id="app">  | 
1  | // 全局注册  | 
dom解析限制
- 比如
table、ul、ol、select限制包围的元素可以通过is来变通 
1  | <ul id="app">  | 
组件的data必须是函数
- 每个组件的作用域都是独立的
 
1  | // 全局注册  | 
父元素和子元素通讯
- props 父到子
 - event 子到父
 
Prop
基本用法
1  | <div id="app">  | 
1  | Vue.component('my-component',{  | 
父模板传入数据
- 字面量语法
 - 传入一个字符串
 
1  | <div id="app">  | 
- 动态语法
 - 绑定一条JavaScript语句
 
1  | <div id="app">  | 
单向数据流
- 父模板流进子组件 子组件不会传回给父模板
 - 可以用data放置props的数据 或者计算属性 computed
 
1  | Vue.component('my-component',{  | 
自定义事件
1  | <div id="app">  | 
1  | Vue.component('my-component',{  | 
- 子组件和父模板作用域都是独立的,子组件通过自定义事件告诉父模板
 - 父模板监听自定义事件,子组件完成事件后触发实例的自定义事件 
this.$emit('increment') 
slot分发内容
编译作用域
- 父模板编译的数据来自 实例
 - 子组件编译的数据来自 自身的数据
 
单个slot
- slot的定义 备用内容 父模板的中子组件的内容将会在子组件slot下编译
 
1  | <div id="app">  | 
1  | Vue.component('my-component',{  | 
具名slot
<slot>元素可以用一个特殊的属性name来配置如何分发内容
1  | <div id="app">  | 
1  | Vue.component('my-component',{  |