仓库vuex
1、Vuex简介
1.为了方便实现组件之间的数据共享,Vuex是他们团队借鉴了redux,用来实现vue组件全局状态(数据)管理的一种机制.
2.特点(面试)
能够在vuex中集中管理共享的数据,易于开发和后期维护
能够高效地实现组件之间的数据共享, 提高开发效率
存储在 vuex中的数据都是响应式的,能够实时保持数据与页面的同步
一般情况下,只有组件之间共享的数据,才有必要存储到vuex中;
对于组件中的私有数据,依旧存储在组件自身的data中即可.
3.使用场景
如果你实在不知道开发中什么数据才应该保存到Vuex中,那你就先不用Vuex,需要的时候自然就会想到它
2、引入方式
1、自己下载使用
安装:
npm i vuex --save
导入:
import Vuex from "vuex"
Vue.use(Vuex)
创建仓库:
const store=new Vuex.Store({
state:{msg:"我就是所有共享的数据"}
})
把仓库挂载到vm对象:
new Vue({
render(h){return h(app)},
router,
store//挂载以后 所有的组件就可以直接从store中获取全局数据
}).$mount( "#app")
2.cli配置 更推荐
vue create app
选择配置vuex
3、配置函数
成功下载后 store/index.js 里面会有以下默认配置,必须掌握,下面来学习她们:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
msg:'我是仓库中的数据'
},
getters: {
},
mutations: {
},
actions: {
},
modules: {
}
})
1、State
//创建state状态,状态就是那个存数据的对象
const store=new Vuex.store({
state:{
msg:"我就是所有共享的数据"}
})
//组件中访问数据
this.$store.state.msg
//不推荐使用,官方说明改变仓库的值不会发生变化。
2、Getter
//可以把它理解为store中的计算属性,传入state中设置的值以供我们操作
//1.设计
const store = new Vuex.Store({
state: {
msg:'我是仓库中的数据',
arr:[{
gid:1