props
父传子组件的属性,props
值可以是一个数组或对象。
$emit
子传父组件绑定自定义事件。
// 父组件 |
vuex
vuex
是一个状态管理器插件,适合数据共享多的项目。
state
:定义存储数据的仓库,可通过this.$store.state
或mapState
访问;getters
:获取store
值,可认为是store
的计算属性,可通过this.$store.getters
或mapGetters
访问;mutations
:同步改变store
值,为什么会设计成同步,因为mutation
是直接改变store
值,Vue
对操作进行了记录,如果是异步无法追踪改变,可通过mapMutations
调用;actions
:异步调用函数执行mutation
,进而改变store
值,可通过this.$dispatch
或mapActions
访问;modules
:模块,如果状态过多,可以拆分成模块,最后在入口通过...
解构引入。
parent父实例和children子实例
- 父组件
this.$children
- 子组件
this.$parent
children
和parent
并不保证顺序,也不是响应式,只能拿到一级父组件和子组件。
$refs
// 父组件 |
$root
// 父组件 |
.sync
// 父组件 |
v-slot
v-slot
作用就是将父组件的template
传入子组件。
插槽分类:匿名插槽(默认插槽),没有命名,有且仅有一个。
// 父组件 |
具名插槽:相对匿名插槽组件slot
标签带name
命名。
// 父组件 |
作用域插槽:子组件内数据可以被父页面拿到(解决了数据只能从父页面传递给子组件)
// 父组件 |
EventBus
- 生命一个全局Vue实例变量
EventBus
,把所有的通信数据、事件监听都存储到这个变量上; - 类似于Vuex,但这种方式只适用于极小的项目;
- 原理就是利用
on
和emit
,并实例化一个全局Vue实现数据共享; - 可以实现平级、嵌套组件传值,但是对应的事件名
eventTarget
必须是全局唯一的。
// 在 main.js |
路由传参
- 方案一:
// 路由定义 |
- 方案二:
// 路由定义 |
- 方案三:
// 路由定义 |
三种方案对比,方案二参数不会拼接在路由后面,页面刷新参数会丢失;方案一和三参数拼接在后面,暴露了信息。
赏
使用微信打赏
使用支付宝打赏
雅致寓于高阁渔舟唱晚,古典悠然;
格调外发园林绿树萦绕,馥郁清香。
扫描二维码,分享此文章