美文网首页
vuex的原理以及实现

vuex的原理以及实现

作者: 峰回路转_best | 来源:发表于2020-08-14 17:20 被阅读0次

vuex的主要作用是做数据管理,数据单向流,在vue的项目中基本上都会用到,对于初学者会感到很迷糊,觉的很神秘,其实它的原理相对还是比较简单的,下面是模仿vuex的原理自己实现一个简单的vuex

let Vue;

class Store {
  constructor(options) {
    // 把状态交给vue来管理
    this.state = new Vue({
      data: options.state,
    });

    this.mutations = options.mutations;
    this.actions = options.actions;
    options.getters && this.handleGetters(options.getters);
  }

  commit = (type, arg) => {
    this.mutations[type](this.state, arg);
  };

  dispatch(type, arg) {
    this.actions[type]({ commit: this.commit, state: this.state }, arg);
  }

  handleGetters(getters) {
    this.getters = {};
    Object.keys(getters).forEach((key) => {
      Object.defineProperty(this.getters, key, {
        get: () => {
          return getters[key](this.state);
        },
      });
    });
  }
}

function install(_Vue) {
  Vue = _Vue;
  Vue.mixin({
    beforeCreate() {
      if (this.$options.store) {
        Vue.prototype.$store = this.$options.store;
      }
    },
  });
}

export default { Store, install };

其实原理相对还是比较简单的,使用的话,还是和原本的vuex类似

// main.js
import Vuex from './kStore.js';

Vue.use(Vuex);
// 注册vuex模块
const store = new Vuex.Store({
  state: {
    count: 1,
  },
  mutations: {
    add(state, n = 1) {
      state.count += n;
    },
  },
});

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

相关文章

  • vuex原理以及实现

    vuex官方文档 Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存...

  • vuex的原理以及实现

    vuex的主要作用是做数据管理,数据单向流,在vue的项目中基本上都会用到,对于初学者会感到很迷糊,觉的很神秘,其...

  • vuex源码分析(三)——Module和ModuleCollec

    本文参考珠峰架构公开课之vuex实现原理 在使用vuex过程中,如果数据量很大可以用vuex的modules实现模...

  • vuex实现原理

    vuex是vue的一个数据状态管理工具,简单的来说他就是一个vue的仓库用来存储vue的数据方便组件之间的调用。 ...

  • vuex实现原理

    以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许...

  • vuex实现原理

    思路及流程 vuex是在每个组件上注入this.store获取共享的状态,定义操作state的方法。首先使用vue...

  • vuex源码分析(一)——初始化vuex

    本文参考珠峰架构公开课之vuex实现原理 vuex是基于vue框架的状态管理。 如何在vue项目中初始化vuex?...

  • 2019-10-09 面试

    1,css3新特性2,vue路由和实现原理3,vuex的实现原理4,webpack打包的过程,loading和pl...

  • vue实现多个tab标签页的切换与关闭

    1.实现效果 2.实现原理 vuex,实现对当前激活项,当前tab列表,当前tab的translateX,当前缓存...

  • Vuex核心实现原理

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,可以帮助我们管理共享状态。 如何在Vue中使用Vu...

网友评论

      本文标题:vuex的原理以及实现

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