zoukankan      html  css  js  c++  java
  • Vuex使用日志

    1、什么是Vuex

    • vuex是一个专门为vue.js应用程序开发的状态管理模式,简单来说就是当多个组件共用一份数据时就会用到vuex。
      每一个Vuex应用包含四大部分,即Vue Components,Actions,Mutations,
      State,其中核心是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。
      Vue Components接收用户行为提交至Actions,然后Actions进一步提交commit(所带参数即为Mutations中的函数),
      Mutations接收commit,修改State里面的数据,然后State将数据变化反馈给Vue Components组件。
      总结来说,数据在State中,数据如何改变由Mutations来决定(比如自增,自减),控制Mutations做改变数据的行为由Actions来决定(必须提交commit)。

    2、使用实例

    2.1、安装

    npm install vuex
    

    2.2、在vue项目src目录下创建store.js

    import Vue from 'vue';
    import Vuex from 'vuex';
    
    Vue.use(Vuex)
    
    const state = {
      count: 1
    }
    const mutations = {
        //count实现自增
      increment(state){
        state.count++
      },
      //count实现自减
      decrement(state){
        state.count--
      }
    }
    
    const actions = {
      increment: ({commit}) => {
        commit('increment')  /*actions向mutations提交commit*/
      },
      decrement: ({commit}) => {
        commit('decrement')
      }
    }
    /*模块导出*/
    export default new Vuex.Store({state, mutations, actions}) /*Store必须大写*/
    

    2.3、在components文件夹里创建vuex.vue组件

    <template lang="html">
      <div class="vuex">
        vuex {{ $store.state.count }} //调用store中state里的count
        <button name="button" type="button" @click="increment">增加</button>
        <button name="button" type="button" @click="decrement">增加</button>
      </div>
    </template>
    <script>
      import {mapActions} from 'vuex' //导入mapAction函数
      export default {
        //使用mapActions辅助函数将组件的methods映射为store.dispatch调用(需要先在根节点注入store)
        methods: mapActions([
          'increment',
          'decrement'
        ])
      };
    </script>
    <style lang="css"></style>
    

    2.4、在入口文件中导入store

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

    2.5、在App.vue中导入vuex组件

  • 相关阅读:
    [转载] c++ cout 格式化输出浮点数、整数及格方法
    [转]
    _jobdu_1001
    关于网页授权的两种scope的区别说明
    CentOS编译安装Python3
    Apache+OpenSSL实现证书服务器提供HTTPS
    Linux下安装Tomcat服务器和部署Web应用
    记一次肉机事件--yam
    通过关闭 UseDNS和GSSAPIAuthentication选项加速 SSH登录
    Git 系列之tag的用法---为你的代码标记版本号
  • 原文地址:https://www.cnblogs.com/lfnumber7/p/12577936.html
Copyright © 2011-2022 走看看