近期应该没什么别的事情了,最近的开发任务有点多,这周也没有去看Vuex相关的细节。
在途的文档中对于Vuex的分析大概会从以下几个方面入手:
- 使用场景
- 基础知识
- 基本概念
- 模块儿和模块收集器
- 映射方法
- mutation 和 action
- commit 和 dispatch
- 安装和实例化
- 后续思考
目前已经梳理到了模块儿和模块儿收集器,等下周这次的业务需求上完线,会继续往下梳理。
等这个vuex整体的原理梳理完之后,计划重新梳理Vue源码中的内容。
之前一直知道Vuex是一个发布订阅模式,但是没有去看过它到底是怎么实现的。昨天又抽了点时间大致看了一下,瞬间就明白了。
源码里的核心我感觉应该可以分为这几个点:
- 动态创建命名空间
- 分别缓存actions 和mutations
- mapper映射函数
动态创建命名空间就是动态的创建一个嵌套的state对象。
对actions和mutations分别进行缓存,其实就是为了实现发布订阅,唯一的不同是,在触发actions动作的时候会借助Promise.resolve()
对action进行Promise化。
代码里的函数有些地方确实是非常巧妙,比如对浅拷贝的使用:
代码语言:javascript复制const entry = store._mutations[key] || (store._mutations[key]=())
entry.push(function getName(){
console.log('terrence')
})
上面这段代码实际上使用了浅拷贝的知识点。
这周末没时间了,预计下周吧,下周可能会对Vuex相关的内容做个总结,然后就开始重新去梳理Vue相关的比较核心的内容。
关于Vue呢,粗略的看过源码中的内容,但是没有系统的去梳理过中间的知识点,梳理一篇自己文档这个事情是也必须要做的一件事儿。
对于Vue的分析,目前大致划分以下几块儿内容:
- 虚拟dom
- 虚拟dom的编译
complie
- 虚拟dom的渲染
- 响应式原理
- 生命周期函数的实现
- 全局API的实现
之所以将虚拟Dom放在最前面,是因为我一直认为它才是Vue的核心,其他的都是基于虚拟Dom实现的。
还有一个计划是对微信生态相关的内容做个梳理,比如:公众号,小程序以及企业微信,预计Vuex这个文档完事儿后,微信生态相关的内容梳理就正式开始,准备对其中的登录、分享、消息推送等一些常见的功能及配置流程进行一下梳理,可以给产品、运营以及相关业务的开发予以指导。
有时候感觉写文档其实比单纯的写代码还难,代码功能就是一个知识点,会了就能写。写文档需要考虑写什么,怎么写,怎么写大家才能看明白,同时有需要有一定的深度,写一篇好的技术文档确实挺难的。
关于Flutter呢,有点准备放弃了,Xcode到现在还没装上,这个东西的开发对硬件要求有点太高了,没办法,俗话说的好,巧妇难为无米之炊。
今天就这样吧。