vue-learning:24 - component - 目录
2024-09-10 21:34:01
component 组件
- 组件的概念
Vue 组件同时也都是 Vue 实例,可接受相同的选项对象option
(除了一些根级特有的选项) 和使用相同的生命周期钩子,以及模板调用方式。 - 组件的构建和注册
- 构建:
com = Vue.extend(option)
- 注册:
- 全局注册:
Vue.component('my-com', com)
- 局部注册:
vm.components: {'my-com': com}
- 全局注册:
- 语法糖:
Vue.component('my-com',option)
vm.components('my-com': option)
- 组件命名规范
- 构建:
组件三大API:
prop
/event
/slot
prop- 字符串数组形式:
props: ['prop1', 'prop2', ...]
- 对象形式:
js props: {prop1: Number} props: { prop1: { type: [Number, String], required: true, default: 100, //当默认值是对象或数组时,必须从函数返回值获取 () => { return value } validator: (value) => { // do somethings return Boolean return result } } }
- prop的命名规范
- 动态prop(除字符串外,其它类型传入都需要使用动态prop,即v-bind绑定)
- 单向数据流和prop实现双向绑定.sync修饰符
- 非prop特性
- 被替换或合并
- 禁用继承
inheritAttr: false
$attr
event
v-on / $on
监听事件$once
一次性事件$emit
触发事件$off
卸载事件监听$listeners
v-on绑定监听器集合(除原生监听事件).native
原生事件修饰符.sync
双向绑定修饰符model
属性
slot
- 普通插槽
html <slot></slot>
- 插槽提供默认值
html <slot>default content</slot>
- 具名插槽
html <slot name="someName"></slot> <!-- 组件调用 --> <my-com> <template v-slot:somName></template> <my-com>
- 作用域插槽
html <slot :prop="value"></slot> <!--组件调用 --> <my-com> <template v-slot='childValue'>{{ cilidValue.value}}</template> </my-com>
- 独占默认插槽的写法
html <some-component v-slot="childValue"> {{ childValue.value }}</some-component> <some-component v-slot:default="childValue"> {{ childValue.value }}</some-component>
- 解构插槽prop
html <my-com v-slot="{value}">{{ value }}</my-com> <!-- 重命名 --> <my-com v-slot="{value: otherName}">{{ otherName }}</my-com> <!-- 重命名并提供默认值 --> <my-com v-slot="{value: {otherName: defaultValue}}">{{ otherName }}</my-com>
- 动态插槽名
html <my-com> <template v-slot:[dynamicSlotName]></template> </my-com>
v-slot
的简写#
html <my-com> <template #somName></template> <my-com>
- 模板编译作用域
父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。
- 字符串数组形式:
- 组件依赖注入
provide
inject
- 组件实例的引用
ref / $refs
$root
$parent
$children
自定义扩展方法
- 组件间的通信
- 父子组件通信
prop / $emit
- 嵌套组件
$attrs
/$liteners
- 后代组件通信
provide / inject
- 组件实例引用
$root
/$parent
/$children
/$refs
- 事件总线
const Bus = new Vue()
- 状态管理器
Vuex
- 父子组件通信
- 动态组件
<component is="com-name"></component>
- 异步组件
function
内置组件
transiton
/keep-alive
/component
- 其它
- 组件的递归调用
- 组件的循环引用
v-once
创建静态组件
最新文章
- JavaScript基础18——js的Array对象
- 带事物处理的DBHelp和sql语句
- Linux ext2文件系统
- 查找DOM
- MFC记住上次路径---遇到的一些问题
- 通过WebClient/HttpWebRequest实现http的post/get方法
- 武汉科技大学ACM :1010: 华科版C语言程序设计教程(第二版)例题7.8
- MySQL使用过程中的报错处理(持续更新)
- kubernetes系列07—Pod控制器详解
- (81)Wangdao.com第十六天_JavaScript 严格模式
- Python列表的增删改查和元祖
- 处理机调度算法( RR 、HRRF)
- 下载EU台网(欧洲台网)的地震波数据
- IIS附加进程调试
- Maven项目继承与聚合
- 解决Android adjustresize全屏无效问题
- 移动web模拟客户端实现多方框输入密码效果
- 《JavaScript》页面跳转
- BZOJ 2190 仪仗队(线性筛欧拉函数)
- ubuntu建立软ap共享无线网络
热门文章
- iOS viewDidLayoutSubviews,viewdidload
- day39-Spring 18-Spring的JDBC模板:查询的操作
- 撸了一个微信小程序项目
- day18 jQuery,JavaScript高级&;Django
- html5 拖放学习
- sql —— having
- UVa 495【大数加法】
- js获取当前日期及获取当前日期的前一天日期函数
- JDK8中`Optional.orElse()` 和`Optional.orElseGet()`之间的区别
- 模板—点分治B(合并子树)(洛谷P4149 [IOI2011]Race)