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>

    效果图:

  • 相关阅读:
    2016/05/16 thinkphp3.2.2 验证码使用
    2016/05/16 UEditor 文本编辑器 使用教程与使用方法
    2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里
    DropzoneJS 使用指南
    MVC设计模式
    Smarty 配置文件的读取
    会话控制
    JS中的call和apply
    CSS选择器
    XML
  • 原文地址:https://www.cnblogs.com/suni1024/p/12022675.html
Copyright © 2011-2022 走看看