继续,这次尝试逐行理解Store类的东西

然后关于这次,一些“工具函数”都集中在util.js的这种做法,已经够我学的了。这是个很受用的做法。

一些简单的东西

if (process.env.NODE_ENV !== 'production') {
  assert(Vue, `must call Vue.use(Vuex) before creating a store instance.`)
  assert(typeof Promise !== 'undefined', `vuex requires a Promise polyfill in this browser.`)
  assert(this instanceof Store, `Store must be called with the new operator.`)
} // 断言函数在util,如果不满足前面的情况,后面以error 排出来
// (实际上就是想看有没有在vue环境中和有没有正确安装)
const {
  plugins = [],
  strict = false
} = options // 定义两个变量,在传入的对象中把这两个东西拿出来,字面意思

看个代码代价很高,我边读边转笔,然后一个失手把手挑了个滴血不止…(笔头挑掉了一层手皮)

vuex和dva的源码都想看,不然没办法知道相性在哪。

由口而入

这都暴露干净了…

export default {
  Store,
  install,
  version: '__VERSION__',
  mapState,
  mapMutations,
  mapGetters,
  mapActions,
  createNamespacedHelpers
}

install肯定是Vue老套路,想把东西当插件用肯定要暴露这个方法。这个之前写组件经常需要碰到,弃之!

这次就先读暴露出来的四个方法吧

首先这一手骚操作要感谢@ahonn,确实这几天学习dva,我自己都觉得自己有点烦了。但是老哥好耐心,真心感谢。

直接上正题吧不磨磨唧唧的了!

dva是什么

这还用说吗,坦克啊!双命特性,大招是通过机甲自爆产生大范围爆炸,本体只有100血,可以反…啊!!!别打我啊!

好吧可能阿里的工程师也喜欢玩守望先锋,而且我清晰记得dva这个框架就是守望大火的时候诞生的,而且还有一个协同工具叫路霸吧。(看来阿里的工程师都不喜欢当C…)


0%