浅读vuex源码

Posted superlizhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅读vuex源码相关的知识,希望对你有一定的参考价值。

极简版vuex代码

class KVuex 
    constructor (options) 
        this.state = options.state
        this.mutations = options.mutations
        this.actions = options.actions
        // 借用vue本身的响应式的通知机制
        // state 会将需要的依赖收集在 Dep 中
        this._vm = new KVue(
            data: 
                $state: this.state
            
        )
    

    commit (type, payload, _options) 
        const entry = this.mutations[type]
        entry.forEach(handler=>handler(payload))
    

    dispatch (type, payload) 
        const entry = this.actions[type]

        return entry(payload)
    

      构造函数constructor接受options参数,options参数传进来之后,作为成员属性保存下来。vuex是依赖vue的, 借用vue本身的响应式的通知机制,constructor里声明一个vue实例,把vuex里的state赋值给实例中的data, 从而实现响应式动态变化。

    我们做提交改数据又是什么行为呢?commit有3个参数type payload _options,我们从mutations里取出type对应的函数,对它进行具体的操作(传入参数执行函数)

    Dispatch与commit类似,接受2个参数type payload ,从actions里取出type对应的函数,对它进行具体的操作(传入参数执行函数)

以上是关于浅读vuex源码的主要内容,如果未能解决你的问题,请参考以下文章

jdk源码浅读-HashMap

浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

eCharts源码浅读 - 初始化关键步骤

浅读vue-router源码,了解vue-router基本原理

Eureka源码浅读---自我保护机制

浅读Java虚拟机