北大青鸟设计培训:web前端多端编程开发框架结构?

JavaScript021

北大青鸟设计培训:web前端多端编程开发框架结构?,第1张

随着我们对web前端编程开发技术的掌握,越来越多的框架语言和架构方式被我们所熟知。

下面南昌北大青鸟http://www.kmbdqn.cn/就一起来了解一下,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无法在16ms内及时绘制。

ReactNative有一些声明式的组件可以避免这个问题,但声明式的写法很难满足复杂交互的需求。

2.由于没有渲染引擎,使用各端的原生组件渲染,相同代码渲染的一致性没有一种高。

3.JavaScript编译型这类框架就是我们这篇文章的主角们:Taro、WePY、uni-app、mpvue、chameleon,它们的原理也都大同小异:先以JavaScript作为基础选定一个DSL框架,以这个DSL框架为标准在各端分别编译为不同的代码,各端分别有一个运行时框架或兼容组件库保证代码正确运行。

链接: https://pan.baidu.com/s/1j8fXhpoHMNQdsLJSdTTX1Q

提取码: iw5f

《初恋那件小事》

导演: 綦小卉

编剧: 赵乾乾、胡晓钰、吴雪莹

主演: 赖冠霖、赵今麦、柴蔚、王润泽、王博文、朱近桐、陈柯帆、李希萌、徐海乔、吕一

类型: 爱情

制片国家/地区: 中国大陆

语言: 汉语普通话

首播: 2019-10-23(中国大陆)

集数: 36

单集片长: 58分钟

又名: 初恋这件小事电视剧版

梁又年(赖冠霖 饰)的母亲是一位非常优秀的建筑师,可惜英年早逝,为了完成母亲的遗愿,梁又年埋头苦读,希望能够考入当地最好的大学,进入其中的建筑系深造。在梁又年心无旁骛追逐梦想的过程中,他的父亲之间的矛盾也愈演愈烈,父子两人经常因为梁又年未来的规划而爆发争吵。

与此同时,梁又年的学妹夏淼淼(赵今麦 饰)也在亦步亦趋的追逐着她严重的“男神”的步伐。最终,夏淼淼如愿和梁又年考入了同一所大学,并且加入了梁又年所组织的美术社。在朝夕相处之中,两人之间的距离越来越近,梁又年无条件的支持着夏淼淼去追逐自己的梦想,而夏淼淼也成为了梁又年和父亲之间关系的调和剂。

引用一段vuejs官方的解释。

vue对比其它框架

Angular

选择 Vue 而不选择 Angular,有下面几个原因,当然不是对每个人都适合:

在 API 与设计两方面上 Vue.js 都比 Angular 简单得多,因此可以快速地掌握它的全部特性并投入开发。

Vue.js 是一个更加灵活开放的解决方案。它允许以希望的方式组织应用程序,而不是任何时候都必须遵循 Angular 制定的规则。它仅仅是一个视图层,所以可以将它嵌入一个现有页面而不一定要做成一个庞大的单页应用。在配合其他库方面它给了更大的的空间,但相应,也需要做更多的架构决策。例如,Vue.js 核心默认不包含路由和 Ajax 功能,并且通常假定在应用中使用了一个模块构建系统。这可能是最重要的区别。

Angular 使用双向绑定,Vue 也支持双向绑定,不过默认为单向绑定,数据从父组件单向传给子组件。在大型应用中使用单向绑定让数据流易于理解。

在 Vue.js 中指令和组件分得更清晰。指令只封装 DOM 操作,而组件代表一个自给自足的独立单元 —— 有自己的视图和数据逻辑。在 Angular 中两者有不少相混的地方。

Vue.js 有更好的性能,并且非常非常容易优化,因为它不使用脏检查。Angular,当 watcher 越来越多时会变得越来越慢,因为作用域内的每一次变化,所有 watcher 都要重新计算。并且,如果一些 watcher 触发另一个更新,脏检查循环(digest cycle)可能要运行多次。 Angular 用户常常要使用深奥的技术,以解决脏检查循环的问题。有时没有简单的办法来优化有大量 watcher 的作用域。Vue.js 则根本没有这个问题,因为它使用基于依赖追踪的观察系统并且异步列队更新,所有的数据变化都是独立地触发,除非它们之间有明确的依赖关系。唯一需要做的优化是在 v-for 上使用 track-by。

有意思的是,Angular 2 和 Vue 用相似的设计解决了一些 Angular 1 中存在的问题。

React

React.js 和 Vue.js 确实有一些相似 —— 它们都提供数据驱动、可组合搭建的视图组件。当然它们也有许多不同。

首先,内部实现本质上不同。React 的渲染建立在 Virtual DOM 上——一种在内存中描述 DOM 树状态的数据结构。当状态发生变化时,React 重新渲染 Virtual DOM,比较计算之后给真实 DOM 打补丁。

Virtual DOM 提供了一个函数式的方法描述视图,这真的很棒。因为它不使用数据观察机制,每次更新都会重新渲染整个应用,因此从定义上保证了视图与数据的同步。它也开辟了 JavaScript 同构应用的可能性。

Vue.js 不使用 Virtual DOM 而是使用真实 DOM 作为模板,数据绑定到真实节点。Vue.js 的应用环境必须提供 DOM。但是,相对于常见的误解——Virtual DOM 让 React 比其它的都快, Vue.js 实际上性能比 React 好,而且几乎不用手工优化。而 React,为了最优化的渲染需要处处实现 shouldComponentUpdate 和使用不可变数据结构。

在 API 方面,React(或 JSX)的一个问题是,渲染函数常常包含大量的逻辑,最终看着更像是程序片断(实际上就是)而不是界面的视觉呈现。对于部分开发者来说,他们可能觉得这是个优点,但对那些像咱一样兼顾设计和开发的人来说,模板能让自己更好地在视觉上思考设计和 CSS。JSX 和 JavaScript 逻辑的混合干扰了自己将代码映射到设计的思维过程。相反,Vue.js 通过在模板中加入一个轻量级的 DSL (指令系统),换来一个依旧直观的模板,且能将逻辑封装进指令和过滤器中。

React 的另一个问题是:由于 DOM 更新完全交给 Virtual DOM 管理,当想要自己控制 DOM 时就有点棘手了(虽然理论上可以做到,但是这样做就本质上违背了 React 的设计思想)。如果应用需要特别的自定义 DOM 操作,特别是复杂时间控制的动画,这个限制就很讨厌。在这方面,Vue.js 更灵活,有许多用 Vue.js 制作的 FWA/Awwwards 获奖站点。

个人推荐就是,vue的入门简单,也有很多公司在用,不愁没人要,react入门难,函数式编程吓人啊。。但是真很好用。。angular不推荐学了。。