美文网首页
vuex 初步理解

vuex 初步理解

作者: coolheadedY | 来源:发表于2017-04-07 03:10 被阅读309次
new Vuex.Store({
  state, // 状态
  getters, // 
  mutations,  // 突然变化了
  actions, // 触发mutations
})

mutations

当执行程序时state突然发生变化成为mutations
mutation的第一个参数是网站的state


const mutations = {
  increment(state) { // 每个mutations方法里第一个参数都是state
    state.count++
  },
  decrement(state) {
    state.count--
  }
}

actions

actions引起副作用和异步操作的函数
actions可以包含任意异步操作
actions不改变state只进行commit到mutations

const actions = {
  increment: ({ commit }) => commit('increment'),
  decrement: ({ commt }) => commit('decrement'),
  incrementIfOdd({ commit, state }) {
    if ((state.count + 1) % 2 === 0) {
      commit('increment ')
    }
  },
  incrementAsync({
    commit
  }) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        commit('increment')
        resolve()
      }, 1000)
    })
  }
}

getters

可以当做计算属性来写,所有的getter接受一个完整的state做第一个参数

const getters = {
  evenOrOdd: state => state.count % 2 === 0 ? '偶数' : '奇数'
}

模板里

<template>
  <div id="app">
    <!--file : /my-project/src/vuex-demo/v02_counter.vue -->
    <h1>点击: {{ $store.state.count }} 次数,此為 {{ evenOrOdd }} <br></h1>
    <button class="btn"  @click="increment">+</button>
    <button class="btn"  @click="decrement">-</button><br>
    <button class="btn"  @click="incrementIfOdd">业务设计:当 奇数时,才增加</button><br>
    <button class="btn"  @click="incrementAsync">业务设计:1秒后,才会增加 1</button><br>
  </div>
</template>

<script>
import { mapGetters, mapActions } from 'vuex' // 使用了mapGetters和mapActions
export default {
  computed: mapGetters([ // 当做了计算属性来写,操作是在store.js里
    'evenOrOdd' 
  ]),
  methods: mapActions([ // 执行actions, actions 中commit到mutations在store.js里
    'increment',
    'decrement',
    'incrementIfOdd',
    'incrementAsync'
  ])
}
</script>

相关文章

  • vuex 初步理解

    mutations 当执行程序时state突然发生变化成为mutationsmutation的第一个参数是网站的s...

  • Vuex 初步概念

    (以下的文章包含个人观点) 什么是vuex vuex相当于其他语言中的全局变量(跟PHP的$_GLOBALS相似)...

  • Vuex 初步学习

    一、概念 每一个 Vuex 应用的核心就是 store(仓库),它包含着你的应用中大部分的状态 (state)。V...

  • vuex入门教程

    之前理解了eventbus事件总线,vuex就会好理解一点;1.npm install vuex --save ...

  • vuex理解

    一、区别: 1、传统或vue页面: 2、vuex页面 说明为了更明确地追踪到状态的变化,函数的执行不走普通的函数调...

  • vuex 理解

    6.1. vuex 理解 6.1.1. vuex 是什么 1)github 站点:https://github.c...

  • Vuex 理解

    我们可以用公司举个例子:公司有个仓库1.State(公司的仓库)2.Getter(只能取出物品,包装一下,不能改变...

  • Vuex与session具体区别

    vuex 与 (sessionStorage 、localStorage)区别 首先,理解vuex的作用 每一个 ...

  • vue - vuex 的安装与使用

    1 vuex的安装 2 vuex的使用 2.1 vuex的核心模块: State: 单一的静态树, 可以理解为定义...

  • vuex 初步学习和使用

    一、vuex定义 Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式,使用插件的形式引进项目中 集中...

网友评论

      本文标题:vuex 初步理解

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