-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
aoy的说明书 #1
Labels
Comments
大神,膜拜一下,打算通读一下源码 |
带我一个,我也要通读一下源码 |
上个车 |
明天有时间看一下源码,我是实习生,哈哈加油 |
谢谢大神的项目!已通读源码,深有体会 =) |
应该是笔误 store |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
作者:杨敬卓
转载请注明出处
目录
前言
随着移动端的崛起,现代标准浏览器的推广,为解决浏览器兼容问题的jQuery渐渐没落。vue和react这些新的前端框架带来了完全不一样的开发体验,不再需要手动去处理dom节点,只需要关心数据层面的问题。
动机
流行的框架和库往往因为功能齐全导致体积巨大,有时我们只用到它们很少的功能,尝试去学习原理,自己实现特定功能有益于学习。
aoy深受Vue和react的影响,是使用Vue和react后,去实践写的一个简单框架。在Vue和react中,每个组件都可以有自己的数据存储容器,当父子组件或不同层级组件需要频繁大量的通信数据时,如果没有Vuex和redux这些状态管理框架,往往最后会变得一团糟。
把所有组件的数据存储在一个唯一的容器里,数据只在容器和组件之间流动。 这是aoy的设计理念。现在aoy只有最基本的功能。只有600行代码,想了解Virtual DOM和diff算法的同学可以试着去阅读源码。
原理
使用了Object.defineProperty绑定store的数据,当观察到数据改变,比较新旧数据产生的Virtual DOM,将差异应用到真实dom上。练练ps,给大家画张图。
使用
Note
只在需要大量重绘的地方使用。
每个aoy实例都会初始化自己的store, 建议一个document下只实例化一个aoy。
在组件中使用this时,this均指向它的调用者。如果需要在调用时取得组件,可以使用bind绑定。
总结
aoy可以说是学习Vue和react原理再结合自己想法的产物,还有很多不足之处。
The text was updated successfully, but these errors were encountered: