提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
组件传参+Vuex
vue概述
提示:这里可以添加本文要记录的大概内容:
组件之间共享数据的方式
父向子传值:v-bind 属性绑定
子向父传值:v-on 时间绑定
兄弟组件之间共享数据:EventBus
$on 接收数据的那个组件
$emmit 发送数据的那个组件
提示:以下是本篇文章正文内容,下面案例可供参考
1、VUEX是什么?
VUEX是实现组件全局状态(数据)管理的一种机制,可以方便啊的实现组件之间数据的共享
1.2使用vuex同意管理状态的好处
能够在vuex中集中管理共享的数据,易于后期维护
能够高效实现组件之间的数据共享,提高开发效率
存储在vuex中的数据都是响应式的,能够剖实时保持数据与页面的同步
1.3 什么样的数据适合存储在vuex中
一般情况下 只有组件之间共享的数据,才有必要存储到vuex当中,对于组件中的私有数据,一句存储在组件自身的data中即可
2。vue的基本使用
state的使用
3.3mutation 用于变更store中的数据
只能通过mutation变更store数据,不可以直接操作store中的数据
通过这种方式虽然繁琐 ,但是可以集中监控所有数据的变化
3.4 actions 异步操作数据的方式
changeScore(context,data){
//在actions中访问mutations
context.commit(“SET_SCORE”,data)
}
3.5 getters 从现有的状态计算出新的数据
level(state){
return state.user.score/100
}
二。传参
1.组件的传参
i. 父传子 props
ii.子传父 事件$emit
iii.引用父组件$parent √
iv.引用子组件
$children √
$refs √
iiv.引用根组件
$root
根组件 最大组件
1事件bus传参
(跨层级访问数据)
(非父子关系)
1. 创建bus.js
import Vue from 'vue'
var bus = new Vue();
export default bus;
2. 在要发送数据的组件中导入bus并使用 bus.$emit
3. 在有接收数据的组件中导入bus 并使用 bus.$on (注意this)
注意:任意组件只要导入bus 就可以随意的 发送与监听数据
bus.$on(eventname,callback) 监听事件
bus.$emit(eventname,data)发送事件
bus.$off(eventname)移除事件
provider和inject 依赖注入 跨层级访问(只读)
provide提供数据
所有子孙都可以通过inject注入数据
inject 接收父辈组件提供的数据
Vuex全局数据共享