|
@@ -1,13 +1,7 @@
|
|
-# MayReact
|
|
|
|
- 先介绍下MayReact
|
|
|
|
- MayReact是我参照React,preact,anujs等库写的一个miniReact框架;其初衷和anu很相似就是写一个更小更快,
|
|
|
|
- 不过可以拥有react的api完美兼容其生态的一个框架;(可以跑通绝大部分的官方测试用例保证其兼容性和健壮性)
|
|
|
|
- 只有2000多行;
|
|
|
|
- 已在自己的项目测试可以完美替换;
|
|
|
|
- 现在在进行性能优化,和部分代码重构;目前性能是React的一倍左右;
|
|
|
|
- 优化后期望追评anu在两倍以上;
|
|
|
|
|
|
+# littleReact
|
|
|
|
+ MayReact是我参照React,preact,anujs等库写的一个miniReact框架;
|
|
|
|
|
|
-写一下过程中的思索以期能帮助也想写一写的人:React大概可以分为这几个模块:
|
|
|
|
|
|
+React大概可以分为这几个模块:
|
|
|
|
|
|
vnode模块:
|
|
vnode模块:
|
|
就是以js对象的形式表示dom,包括createElement,cloneElement,Component,PureComponent,statelessComponent
|
|
就是以js对象的形式表示dom,包括createElement,cloneElement,Component,PureComponent,statelessComponent
|
|
@@ -67,32 +61,3 @@
|
|
我们diff的时候也需要一个脏组件队列方便我们排序然后顺序diff,diff过程中我还可能添加新的脏组件等等;
|
|
我们diff的时候也需要一个脏组件队列方便我们排序然后顺序diff,diff过程中我还可能添加新的脏组件等等;
|
|
这些我们很明显都需要队列来处理,这时候或许你会想我们要一个什么样的队列,我们是把回调函数单独一个队列到时候排序然后顺序执行呢,
|
|
这些我们很明显都需要队列来处理,这时候或许你会想我们要一个什么样的队列,我们是把回调函数单独一个队列到时候排序然后顺序执行呢,
|
|
还是我把回调函数绑定在component上在遍历component的时候调用相应回调呢?
|
|
还是我把回调函数绑定在component上在遍历component的时候调用相应回调呢?
|
|
-
|
|
|
|
-
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-##接着说下MayReact;
|
|
|
|
-
|
|
|
|
- anu我也很推荐地址:https://github.com/RubyLouvre/anu
|
|
|
|
-
|
|
|
|
- MayReact其实May取maybe的意思,寓意无限可能吧;
|
|
|
|
-
|
|
|
|
- 在这个过程中又看了preact,anu发现司徒正美先生的anu和我目的一样,而且人家写的很好,所以MayReact有很多地方都是借(chao)鉴(xi)anu和preact的,
|
|
|
|
- 当然更多的地方是我一点点写出来的;
|
|
|
|
-
|
|
|
|
- 其实我写这个更主要的目的还是为了帮助很多像我一样的人,这些年以来我从GitHub获益良多,看了很多框架,了解了很多思想;
|
|
|
|
- 便想着自己也写一写,写一写这过程中的坑与思索,以期能帮助更多像我一样的人;
|
|
|
|
-
|
|
|
|
- 这三个多月其实完成最初版本的只用了半个月多点吧,剩余时间都在不停的跑测试不停的重构了;其实它并不难,更多的需要你的毅力,
|
|
|
|
- 不停的思考更好的解决方法;而你写完之后也会有巨大的成就感的;借用我听到的一句话:做事情有两个最重要的品质
|
|
|
|
- 一个是热情一个是毅力,热情让你开始,毅力让你坚持;
|
|
|
|
-
|
|
|
|
- 好了鸡汤说完了,再稍微说下MayReact,为了方便你看最容易看的版本(我新建了一个分支forRead这就是刚跑完测试的版本,
|
|
|
|
- 虽然有很多地方还很low不过应该是比较容易读的版本,好多地方也都写了当时的理解等等;希望对你有帮助;)
|
|
|
|
-
|
|
|
|
- MayReact现在是65kb 大小跟anu(75kb)差不多,等我优化之后体积应该差不多吧,最后基本上是React的1/5了;性能刚跑了一下anu是React的两倍,
|
|
|
|
- 我这才是React的一倍,等我优化之后争取比anu还快一些吧;其实写完May我觉得性能重要但是框架的健壮性也是应该保证的,
|
|
|
|
- 而且我重写一个框架让它更快还是比较简单的毕竟珠玉在前,难的是从无到有,当然这也是我们继续努力的方向;
|
|
|
|
-
|
|
|
|
- 絮絮叨叨说了这么多也希望你早日完成你的框架;路漫漫其修远兮,愿你我都能孜孜以求~
|
|
|
|
-
|
|
|
|
-
|
|
|