zoukankan      html  css  js  c++  java
  • Vuex-全局状态管理【简单小案例】

    前言:

    Vuex个人见解:

    1、state :所有组件共享、共用的数据。理解为不是一个全局变量,不能直接访问以及操作它。
    2、mutations : 如何操作 state 呢?需要有一个能操作state 的方法【mutations】,来操作它。mutations 只是定义了操作 state的方法,无法驱动。
    3、actions : 使用actions 来驱动 mutations 中的操作 state的方法函数。使用,commit 来告诉 mutations ,执行操作,改变state的值。

    src根目录

    新建store.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    
    const state = {
      count: 1
    }
    
    const mutations = {
      increment(state) {
        state.count++
      },
      decrement(state) {
        state.count--
      }
    }
    
    const actions = {
      Actions_increment: ({ commit }) => {
        commit('increment')
      },
      Actions_decrement: ({ commit }) => {
        commit('decrement')
      }
    }
    
    //模块到处,才能被引入使用
    
    export default new Vuex.Store({ state, mutations, actions })

    main.js引入

    import Vue from 'vue'
    import App from './App.vue'
    import store from './store'
    Vue.config.productionTip = false
    
    new Vue({
      store,
      render: h => h(App)
    }).$mount('#app')

    新建一个 vue组件 

    <template>
      <div id="vuex">
        <div class="container">
          <h1>Vuex实例</h1>
          <hr />
          <div class="input-group">
            <span class="input-group-btn">
              <button type="button" class="btn btn-success" @click="Actions_increment">增加</button>
            </span>
            <input type="text" class="form-control"  v-model="count" />
            <span class="input-group-btn">
              <button type="button" class="btn btn-danger" @click="Actions_decrement">减少</button>
            </span>
          </div>
        </div>
      </div>
    </template>
    <script>
    import { mapActions, mapState } from "vuex"
    export default {
      methods: {
       ...mapActions(["Actions_increment", "Actions_decrement"])
      },
      computed: {
        ...mapState([
          'count'
        ])
      }
      
    }
    </script>
    
    <style>
    
    </style>

    效果图:

  • 相关阅读:
    23种设计模式(12):策略模式
    23种设计模式(11):责任链模式
    23种设计模式(10):命令模式
    23种设计模式(9):访问者模式
    23种设计模式(8):观察者模式
    23种设计模式(7):中介者模式
    23种设计模式(6):模版方法模式
    创建型模式总结
    23种设计模式(5):原型模式
    leetcode6
  • 原文地址:https://www.cnblogs.com/suni1024/p/12022675.html
Copyright © 2011-2022 走看看