美文网首页
vuex 使用简介

vuex 使用简介

作者: 是素净呀丶 | 来源:发表于2017-04-25 09:29 被阅读0次

下面用一个小的例子开始。

一、创建独立的state singleModule文件,如count.js,内容如下

export default {
  /** 初始状态 */
  state: {  count: 0 },
  /** 
   *mutations ( 类似redux中的reducer, 表示了对状态state造成的影响 )  函数内不能出现异步操作
   *直接修改state的值 reducer是返回一个新的state对象
   */
  getters: {
    count: state => state.count
  },
  /**
   * 方便获取state中的值 或者获取处理值
   */
  mutations: {
    ADD_ONE(state)
    {
      state.count += 1;
    },
    SET_VAL(state, order)
    {
       const _order = Object.assign({ count: state.count }, order || {});
       state.count = _order.count;
    }
  },
  /** 对mutations的引用( 可进行异步操作,回调mutations ) */
  actions: {
     _ADD_ONE: ({ commit }, order) => commit('ADD_ONE'),
    _SET_VAL: ({ commit }, order) =>
    {
         $.ajax({ ....}).done(result =>{ commit('SET_VAL', result.data) });
    },
    _SET_VAL_THEN: ({ commit }, order) => {
      return new Promise((resolve, reject) =>
        $.ajax({ ....}).done(result =>{ commit('SET_VAL', result.data); resolve(result.data) });
      });
    }
  },
  /** 独立命名空间 建议总是使用( 使用后在对getters actions state的获取时 ) */
  namespaced: true
}

二、初始化store

import Vue from 'vue';
import Vuex from 'vuex';
import count from 'count';

export default new Vuex.Store(
{
  modules:
  {
    _count: count    //  _count 为此modules名 获取state等信息时需要
  }
})

三、初始化app时挂载

import App from 'App';
import Vue from 'vue';
import store from 'store';
import router from 'router';

new Vue({
   store,
   router,
   template: '<APP/>',
   render: h => h(App)
}).$mount('#app')

四、调用

<script>
  // 组建中调用
  import Vue from 'vue';
  export default Vue.extend(
  {
   computed: {
      ...mapGetters('_count', [ 'count' ])  // 获取_count模块中count-getter
         //  同...mapState('_count', [ 'count' ])
    },
    methods:{
      ...mapActions('_count', { 'addOne': 'ADD_ONE'; 'setVal': '_SET_VAL' }) // 获取并重命名
    }
  })

  // 非组件中调用( 设置了命名空间后的调用方式自己猜测出来的 得瑟ing )
  import store from 'store';
  store.dispatch('_count/ADD_ONE');
  store.dispatch('_count/_SET_VAL', { count: * })
</script>
summary:

总体来说比react中redux容易很多。掌握理解state store actions即可。

相关文章

  • vuex 使用简介

    下面用一个小的例子开始。 一、创建独立的state singleModule文件,如count.js,内容如下 二...

  • Vuex

    Vuex简介: 由于使用propes传递数据太麻烦,所以使用vuex进行状态管理。不能直接修改vuex中的数据,只...

  • Vuex

    简介:vue官方提供的状态管理器 vuex的使用步骤: 安装:npm install --save vuex; 在...

  • vuex的使用简介

    vuex 使用 在vue中组件的通信是基于事件系统,一旦应用复杂的到一定程度,双向数据流会使数据出现意想不到的问题...

  • vuex记录

    前言 官方文档讲vuex讲的很清楚了,本文用于总结vuex的简单使用 简介 Vuex 是一个专为 Vue.js 应...

  • TypeScript实战04--TS+vue开发todo应用

    简介: 简单的列表修改demo(使用 ts + vuex-class + vue + vue-proper...

  • Vue学习笔记进阶篇——vuex安装及使用

    本文为转载,原文:Vue学习笔记进阶篇——vuex安装及使用 简介 Vuex是一个专为 Vue.js 应用程序开发...

  • vuex基础入门

    Vuex简介 vuex的安装和组成介绍 vuex简介 vuex是一个专门为vue.js应用程序开的状态管理模式它采...

  • Vuex

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

  • vuex 简介

    vuex是什么? 是一个专为 Vue.js 应用程序开发的 状态管理器。 采用集中式存储管理应用的所有组件的状态,...

网友评论

      本文标题:vuex 使用简介

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