单页面应用(SPA --- single Page Application)
整个项目只有一个html文件 视觉上的页面切换,本质是组件的切换
组件通信
- 父子通信
通过props实现
- 子父通信
通过$emit实现
- 非父子关系的组件通信
bus事件总线通信
- $refs实现组件通信
获取并操作DOM、组件对象
- vuex 集中式状态管理工具 【后续专门讲解】
bus事件总线通信
本质就是new Vue() 实例对象
let bus = new Vue() //事件总线对象
例如:溜娃
- 家长A带着子组件a-child
- 家长B带着子组件b-child
- 两个子组件之间,分享糖果
- 定义bus对象
let bus = new Vue()
- 触发bus总线的自定义事件
handleSend() {
bus.$emit('give-a-candy',1) //【2】触发bus总线自定义事件
this.candy -= 1
}
- 订阅总线bus对象的自定义事件
created () {
bus.$on('give-a-candy',(n)=>{ //【3】订阅总线bus对象的自定义事件
console.log(n);
this.candy += n
})
},
refs的使用
用以获取真实DOM结构
- 操作普通标签的DOM
- 操作组件标签实例对象
不要过度使用DOM操作
适合用DOM操作的场景
- 焦点管理
- 多媒体文件操作 (音频、视频)
message组件封装
-
结构
-
样式
-
功能
- props
- m-type 主题配置 'info' success|warning|info|error
- m-close 是否可关闭 false Boolean
- m-center 是否居中 false Boolean
- m-style 自定义主题 '' String
- m-title 提示内容 '默认提示' String
- slot
- icon 自定义图标
- title 自定义内容格式
- 交互
- 自动关闭
- 点击关闭