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',{ |