北大青鸟设计培训:web前端多线程编程开发框架结构?
我们来看看web前端开发的一些常见框架结构。
1.这种全包框架的一大特点是从底层渲染引擎和布局引擎到中间DSL再到上层的所有框架都是自己开发的,代表框架有Qt和Flutter。
这种框架的优点很明显:高性能;各平台渲染结果一致。
缺点也很明显:需要彻底重新学习DSL(QML/Dart),难以适应中国特色的结局:小程序。
这种框架是一种原始的、纯粹的多端开发框架。因为从底层到顶层的每一个环节都掌握在自己手中,也能尽可能保证开发和跨端体验的一致性。
但是他们的框架开发成本巨大,渲染引擎、布局引擎、DSL、上层框架每一部分都需要大量的人力进行开发和维护。
2.基于Web技术的框架将Web技术(JavaScript、CSS)引入移动开发。自研布局引擎处理CSS,使用JavaScript编写业务逻辑,使用流行的前端框架作为DSL,每端使用自己的原生组件进行渲染。
代表性的框架有ReactNative和Weex,其优点是:开发速度快;重用前端生态;易学易用,无论前端后端移动端,多多少少都会有点JS,CSS。
缺点是:1。交互复杂时很难写出高性能的代码,这样的框架设计必然导致JS和Native之间需要通信。频繁触发类似手势操作的通信,很可能会导致UI无法在16 ms内及时绘制..
ReactNative有一些声明性组件来避免这个问题,但是声明性编写很难满足复杂交互的需求。
2.因为没有渲染引擎,使用各端的原生组件进行渲染,渲染相同代码的一致性不高。
3.JavaScript编译框架是本文的主角:Taro、WePY、uni-app、mpvue和chameleon,它们的原理都差不多:首先选择一个基于JavaScript的DSL框架,基于这个DSL框架在每一端编译成不同的代码,每一端都有一个运行时框架或者兼容的组件库来保证代码的正确运行。