小结一下最近的事情, 固然仍是关于 Weex 为主,
晚饭前还跟同事扯淡说一夜写一个 Weex 框架出来的可能性,
仍是实力不够... 不过通过两个晚上的加白天偷了点时间, Respo 算是跑通了,
最近须要熟悉 Weex 的 Virtual DOM API, 于是顺带花了大量时间,
我想说, 若是你想造个 Weex 框架, 能够开始玩了...javascript
Weex Conf 结束后我就有把 ClojureScript 编译过去的想法,
不过 Rax 是真让我意外, 特别是英文社区对于 Rax 的关注程度,
但前端社区就是这样, 你们永远无法统一. 因此, 我发起了一个投票,
http://vote.weibo.com/poll/13...
结果你们已经看到了, Vue 和 React 的拥护者大概各有 1/3,
剩下当中, 10% 说想要 jQuery, 8% 说要自已造一个框架出来.
不管是 jQuery 仍是本身造框架, 这种可能性都很值得探索.前端
因而我就去探索了, 在官方仓库的文档里翻到了 DOM API, 也翻到了例子,
后来个人例子还跑通了, 于是我对于这件事情仍是至关有信心的,
周二晚上整理了文章出来, 把大体的步骤都记录了一下:
https://hashnode.com/post/run...
简单说 Weex 环境是个 JavaScript 引擎, 去掉了 DOM API,
同时加上了 Weex 运行时所提供的一些 API, 以及全局对象.
这些 API 就像是一层 low level 的 IR, higher level 的 DSL 基于它们构建.java
细节看文章描述, 尽管是英文... 因为模拟了 DOM API, 其实难度并不高,
并且多亏了 Weex Rax 在前面开路, 实际上我没碰到什么大问题.
但也有一些思考, 好比说基于单个 js 文件, 如今没看到有合适的热替换方案,
调试方面的 Weex 已经很赞, 但也有不完善的, cljs 的 SourceMap 我遇到坑了,
Weex Playground 的版本没有统计升级, 跟源码等各个地方短时间还有不一致,
目前官方彷佛都将精力放在 Weex 自己, Virtual DOM API 自己值得继续挖掘.
而这样一个环境, 其实值得引起更多咱们对已有的技术栈的思考和重构.node
回来扯一扯 ClojureScript 写的 Respo, prototype 已经正常跑, 问题不大,
https://github.com/Respo/weex
个人主要工做是替换了 DOM API 和事件处理部分调用 API 和写法,
同时因为事件机制存在区别, 事件冒泡的代码作了一些删减,
ClojureScript 虽然依赖 Closure Library, 后者对 DOM 存在依赖,
可是从结果看, 仅仅是编译的话不相关的代码其实会被自动清除, 并不影响,
可是在热替换方面, 模块级别的热替换难以作到, 这是个不小的遗憾,
我估计这也须要 ClojureScript 核心团队下手才能解决, 我尝试了, 段位不够.git
另外一方面, 我也整理了一篇短文, 关于将 Virtual DOM 做为 IR 的理解,
https://medium.com/@jiyinyiyo...
也趁机会和勾股交流了下想法. 我我的认为 Virtual DOM API 价值更大,
若是能将这些 API 整理更明确一些, 对于构建生态更为有利,
能够想象, 一套工具链就像是链条, 须要不少人从等分的位置托起, 才能平稳,
而 IR 若是充实, 意味着中间的位置更加稳定, 可以承载更多的力量和玩法,
并且将来业务和性能优化的分离我认为会更清晰, IR 对此也有助益.github
我我的却是以为 Weex Playground 挺好玩的, 已经像浏览器了,
想象一下之后到了商家, 扫码, 点开商家的菜单, 而后就能看各类东西,
要是还能收藏... 我为何要费事去手动输入一个网址呢. 再说也不止二维码.
Weex Conf 上午的 Keynote 也算是开了脑洞, 咱们的需求在不断挑战技术,
大厂们迫切须要旗下的各类伙伴快速制做大量的高性能的站点以及应用,
然而 Native 应用这么多年, WebView 这么多年, 拖慢了产品的节奏,
有人在研究技术让生命延长, 同时也有人在研究技术在短暂的时间能感觉更多.浏览器
扯远了. 我我的对 React 对 Vue 的好感都挺通常, 反而更但愿 DOM API 更成熟,
其实如今 Weex 自己是 Vue 和 Weex runtime 的混合体, 工做量也挺大的,
总归来讲, 360+ 的人里有 28 我的想本身写框架, 其实也是不错的事情,
我仍是蛮期待官方对于热替换给出一些方案, 这样能给框架开发者不少想象力,
固然在前方开路那也是极难的事情. 我也就写到这里吧...
考验你们想象力和编码能力的时刻到了, 趁老外还没开始刷 Weex !性能优化