Weex 小结

版权声明:有些文章写的很随意,那是仅作为个人记录的文章,建议直接关掉,多看一秒亏一秒 https://blog.csdn.net/qq_36523667/article/details/82315506

我对Weex学的不深,是这样看待它的:

写一套.we或者.vue,由Weex环境转化成.js

.js里描述的是对于移动端的抽象,本身就可以在网页运行

对于IOS和Android,可以对.js进行解析,.js里抽象的移动端,都可以在IOS和Android里找到对应的组件去替代

加载.js的时候

1.解析.js保存的布局文件

2.创建View

3.设置布局参数

4.设置点击事件

5.绑定数据到View上

然后这个View就形成了,再扔给Activity.setContentView

然后事件流仍然是走在.js中,无论是初始化时间流,还是后续事件流。

我猜测View接受到触摸事件后,会立刻回传到JS

所以整个事件流是在.js里的

遇到Module、Component就会走Native层

同时Component的任务还会延迟到下一次ASYNC渲染信号到来的时候执行

所以大概有这么几层

1.JS内核层,用于处理JS

2.Framework层,有各种Manager,封装了和JS内核层的交互,并由此提供基础服务

3.线程处理层,处理线程切换等

4.组件层,Module、Component具体功能在Native的执行

感觉上好像是模仿了Android的架构

Weex的几个注意点

线程模型

1.JS、Native交互线程

2.DOM解析线程

3.UI操作线程

此外反射的消耗

我不太清楚Weex的注解采用的是不是编译时注解,这一点性能上是可以优化的

开发模式的转变

Native开发模式是:一个模块一个组,还有一个公共模块组

Native开发中,公共模块已经承担了架构与框架任务,业务模块只剩下了业务逻辑。

所以用了Weex以后,只不过是把业务逻辑从Native转移到了JS,Native仅保留了公共模块。

其实都一样啊,业务开发程序员对于架构和框架是无感的,只剩下了需求理解+复杂业务逻辑的处理,是开发Java还是开发JS,其实都一样。。。

所以现在招人都在意你会不会一点JS,毕竟是要你用JS去开发业务的,不可能初出茅庐就让你去架构公共服务。 

猜你喜欢

转载自blog.csdn.net/qq_36523667/article/details/82315506