vuex

作者: Junx_ | 来源:发表于2017-05-31 15:53 被阅读0次
const store = new Vuex.Store({
  state,
  getters,
  mutations,
  actions,
  modules
})

const app = new Vue({
  el: '#app',
  // 把 store 对象提供给 “store” 选项,这可以把 store 的实例注入所有的子组件
  store,
  components: { Counter },
})

核心概念

  • state

作用
存储数据

state定义
var state = {}

不使用vuex
存储需要使用的变量,当多个组件使用时,需要在不同组件中重复引用。

使用vuex
在vuex对象中写入state对象,并在vue根实例中引入vuex对象,所有子组件都可以访问。

使用方法
this.$store.state.xx

  • Getters

作用
定义多组件使用的计算属性

getters定义
传入state作为第一个参数,可以选其他getters作为第二个参数

var getters = {
  // ...
  doneTodosCount: (state, getters) => {
    return getters.doneTodos.length
  }

不使用vuex
当多个组件使用同一个计算属性时,需要在多个组件中定义相同的计算属性。
如:

computed: {
  doneTodosCount () {
    return this.$store.state.todos.filter(todo => todo.done).length
  }
}

使用vuex
在vuex对象中写入getters对象,所有子组件中可以使用。

使用方法

computed: {
  doneTodosCount () {
    return this.$store.getters.doneTodosCount
  }
}
  • Mutation

mutation定义
每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler),接受state作为第一个参数,可传入额外的参数。是同步事件不可在事件回调函数中写入异步操作。

var mutations = {
    increment (state, n) {
      // 变更状态
      state.count += n
    }
  }

作用
唯一修改store状态的途径是提交mutation中定义的事件,
相当于把state中的数据当成是可访问不可修改的私有变量,而mutation是不可直接调用的公有方法,被当成是事件的形式,需要发射事件触发相应的回调函数。

使用方法
this.$store.commit('increment', n)

  • Actions

actions定义
Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.statecontext.getters 来获取 state 和 getters。

  var actions = {
    increment (context) {
      context.commit('increment')
    }
  }

作用
actions类似于mutations,不同的是actions提交的是mutation,而不是直接改变状态,并且可以在actions内部写入异步操作。

使用方法
this.$store.dispatch('increment')

相关文章

  • VUEX基本介绍,包含实战示例及代码(基于Vue2.X)

    VUEX 1 VUEX基本介绍 1.1 官方API 1.2 什么是vuex 1.3 Vuex使用场景 1、Vuex...

  • 【文档笔记】-Vuex

    什么是vuex? vuex文档: https://vuex.vuejs.org/zh/[https://vuex....

  • vuex配置

    vuex配置 目录 vuex的五个核心 配置vuex vuex持久化 一、vuex五个核心概念 State 定义状...

  • Vuex

    安装Vuex cnpm install vuex --save-dev Vuex是什么? 这是[Vuex的官网](...

  • Vuex

    1.Vuex概述 2.Vuex基本使用 3.使用Vuex完成todo案例 1.Vuex概述 Vuex是实现组件全局...

  • vuex

    Vuex介绍: Vuex官网:http://vuex.vuejs.org/ Vuex是实现数据状态管理的技...

  • vuex+axios 的开发流程记录

    相关文档 vuex: https://vuex.vuejs.org/zh/ 是否有必要使用vuex vuex是vu...

  • 2019-06-07

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

  • 配置 vuex 和 vuex 本地持久化

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

  • vuex

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

网友评论

      本文标题:vuex

      本文链接:https://www.haomeiwen.com/subject/hxhjfxtx.html