vuex基础

何谓 Vuex?

根据 Vuex 文档中的描述,Vuex 是适用于 Vue.js 应用的状态管理库,为应用中的所有组件提供集中式的状态存储与操作,保证了所有状态以可预测的方式进行修改。

Vuex 中 Store 的模板化定义如下:

 
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
  state: {
  },
  actions: {
  },
  mutations: {
  },
  getters: {
  },  
  modules: {
    
  }
})
export default store

上述代码中包含了定义 Vuex Store 时关键的 5 个属性:

  • state: state 定义了应用状态的数据结构,同样可以在这里设置默认的初始状态。

 state: {
  projects: [],
  userProfile: {}
}

  • mutations: 调用 mutations 是唯一允许更新应用状态的地方。

 mutations: {
    SET_PROJECT_LIST: (state, { list }) => {
      state.projects = list
    }
  }

 actions介绍

定义异步,延迟的方法

actions:{
    getCartNum(context,data){
        setTimeout(()=>{
            //可以调用mutations方法
            context.commit("SET_CART_NUM",data)
        },4000)
    }
}

 在组件中调用

$store.dispatch("getCzrtNum",33)

 2.基础使用步骤

1.导入vuex

import Vuex from 'vuex'
Vue.use(Vuex)

2.创建store对象

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
  },
  getters: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})
 

4.把store对象挂载到vue实例中

new Vue({
    el:"#app",
    render:h=>h(app),
    router,
    store
})

  备注 我们创建一个练习项目文件夹,注意配置的时候选择安装vuex即可,它会自动生成store文件夹,里面的index.js就是存储的核心文件。

3.state设置共享数据

组件中使用共享数据的语法:

// 定义数据使用state
    state: {
        // 定义vuex中的数据
        cartNum: 10,
    },

 

4.mutations定义修改数据方法 

组件要修改数据建议用mutations

vuex中不建议子组件直接修改全局的store中的共享数据,所以我们要是想修改数据的时候建议使用mutations,便于统一管理。

mutations中定义处理逻辑的方法

mutations: {
        // 修改state数据必须在mutations中的方法
        // 方法名建议大写
        SET_CART_NUM(state,data){
            // 修改cartNum的值
            state.cartNum = data;
        }
    },

 组件中通过methods中的方法调用mutations中的方法

$stote.commit("SET_CART_NUM",100)

3.单词介绍

单词解释
actions动作:异步方法
mutations改变:是修改state数据的唯一方式
state状态,数据
getters获取器
moudule模块
commit提交

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值