文章参考:https://zhuanlan.zhihu.com/p/311184005
项目参考:darukjs InversifyJS
依赖注入是 IoC(控制反转) 的一种实现方式,通过依赖注入可以动态的将某种依赖关系注入到对象中,而不用手动一个个实例化。
在依赖注入中,将实例化对象这个步骤交给外部(IoC 容器),即为控制反转。
文章参考:https://zhuanlan.zhihu.com/p/311184005
项目参考:darukjs InversifyJS
依赖注入是 IoC(控制反转) 的一种实现方式,通过依赖注入可以动态的将某种依赖关系注入到对象中,而不用手动一个个实例化。
在依赖注入中,将实例化对象这个步骤交给外部(IoC 容器),即为控制反转。
git rebase
被翻译为变基,该命令的作用就是整理提交历史,效果是使得提交历史变成连续的,没有分叉。在团队开发时,经常需要进行合并,我们知道,一般使用 git pull
或 git merge
合并远程代码,合并时会优先使用快速合并,若不能快速合并则会采取三方合并,会添加一个 commit,commit 记录了被合并的两个 parent。
其实合并的方式不止默认的这两种方式,rebase/squash 等合并方式更是可以带来干净整洁的提交历史。
顾名思义,sticky 就是将某元素粘在某个位置的意思。这里不用固定而用”粘“是因为要”粘“住一个东西必须先与这个东西要有接触才能说得上粘住。
”粘“针对两个物体,被粘物与粘结物。这里的被粘物指我们的元素,粘结物是滚动容器的边界(上下左右)。通常我们实现这个效果都会使用 JS 来监听滚动并计算滚动位置来实现。现在你可以通过 CSS 来实现,通过查看 caniuse 可知,兼容性不是太好,不过可以使用 polyfill。
Mobx 是一种状态管理方案。不同于 redux 将状态定义为不可变状态,mobx 会自动收集依赖,以可变状态的方式直接修改原始状态,这点与 Vue 的状态管理很像。
在 es6 环境下,可以直接使用装饰器定义状态及方法:
1 | import { observable } from "mobx"; |
在 Vue 中 nextTick 实际上是一个 microTask(在 2.5 中曾被替换为 macroTask 实现,2.6 中又恢复为 microTask),源码位于 src/core/util/next-tick.js
,
1 | export function nextTick (cb?: Function, ctx?: Object) { |
computed 与 data 类似,在 init 阶段的 initState 中初始化的:
1 | // 遍历 computed,,为子项创建 watcher |
如果 key 不是 vm 的属性则会调用:
Update your browser to view this website correctly. Update my browser now