
近年来,随着前端技术的飞速发展,几乎每年都会出现一个主流的框架,每次你开始新的业务或开始一个新的项目,你首先要做的就是纠结:使用什么框架,重建什么轮子我很高兴在CSDN的邀请下与大家分享我的观点。
56年前,移动端还没有出现,我们只能选择jQuery。前端,因为JQuery单独可以接管世界。jQuery是不够的。有数以千计的jQuery插件,所以问题一个接一个地出现。一个页面上的jQuery插件太多,请求太多,所以我们必须对其进行打包。打包要求我们计划插件。因此,这个要求逐渐演变为社区中的一些规则,其中最著名的是包含在需求中的AMD规范JS加载库。
RequireJS是前端技术发展的一个分水岭,JavaScript直到ES6才拥有自己的加载机制,RequireJS的出现意味着前端可以在更大范围内开发。是否存在加载器机制或符合模块规范。
从框架的角度看,它的功能并不丰富,社区有多活跃,国内社区有多活跃(有些在国外很流行,但只有初创公司的边缘项目或一些大公司在测试水),文档是否完整,或n不管它是否及时更新,测试的覆盖范围有多广,开始有多容易,这都是我们要考虑的问题。然而,能够进入我们视野的外国框架基本上是百战后车轮繁荣的世界的领导者。JQuery,Ang.,KnockOut,Emberjs聚合物、反应、骨架、Zepto,我们基本上围绕这些展开。当然,还有更大的东西,比如EXT、YUI、Dojo、EasyUI、Bootstrap,它们都位于UI库级别。
显然,我们的第一步是确定最受欢迎的框架和图书馆作为评估对象,然后根据公司的情况对其进行筛选。如果是一家网站建设公司,页面不会很复杂,基本上是jQuery+Bootstrap,不要想太多,就是他们。如果你有自己的产品,维护大量的客户数据,处理客户,不难想象会有一个非常复杂的CRM系统。干,根据中国人的特点,这件事只会变得越来越复杂,这需要仔细考虑。这往往是一个持续10年的维护升级。我们需要看一个框架是否具有您产品的寿命,以及这个框架的更新是否频繁且温和。
如果你的项目是一个跨越三年以上的大型项目,90%的人和月亮神话是一个沥青坑。我们需要使用更健壮和成熟的技术解决方案,我们需要集中精力避免Google的产品,它的许多产品是门票播放特性,GWT,Clo当然,Darty是过去的教训。基于许多新技术,对象。.e()、CustomElements、HTML导入、ShadowDOM、模型驱动视图远未标准化,其中许多视图是独占的,并且变量太大,因此下图显示了。Angular不是我的黑色视图。它也喜欢悬崖升级。它与IE6-8在1.08兼容,与老IE在1.2兼容,与老IE在1.08兼容,与老IE在1.3兼容,与老IE在1.3兼容。所有兼容的代码都直接从源代码中删除,所以所有补丁方案都无法返回到天空,不支持全局Ctrl功能,需要多个模块。1.4不支持动画模块向下。由于使用对象,2从AT到TS构建。观察()、IE6、11、Chrome 30不被支持。
如果您的产品是后端系统,那么有两种选择,使用EXT、EasyUI,这些主要的UI库解决方案,其中EXT具有严重的排他性,很难与其他前端解决方案一起使用。什么模块被组织、打包和可视化都可以为您完成。训练起来很难开始,但是它要求你的团队非常稳定。现在很难招到全职的EXT前端,EasyUI是中国最有名的UI框架之一。虽然它是封闭源,但不难扩展。
另外,国内的淘宝Kissy和网易Nej也不错,还有一个更轻的选择:MVVM。不像MVVM的几个循环绑定那么清晰和可伸缩。目前,我编写的KnockOut、Emberjs、Angular和Avalon就是这样的框架。Angular有点小问题,但是如果从1.3开始,不使用IE,那么它是一个不错的选择,并且它的活跃社区为它带来了无限的可能性。UT在其中很受欢迎。网络人群。微软是前端MVVM框架的祖先,但它需要对后端数据进行太多的处理,因为它不支持嵌套对象的绑定。Yehuda Katz是jQuery、Rails、SpReutCeORE、Melb和把手的核心成员。老虎爸爸没有狗的儿子。Emberjs是国外第二大MVVM框架,Avalon是比较适合我国国情的MVVM。它特别兼容IE6版本,易于使用,高性能,和许多视频教程。如果出了问题,它可以抓住作者,这是它的主要卖点。
如果您的产品是像购物中心这样的再演示产品,那么就需要SEO,MVVM是不合适的。目前,Angular和Avalon正在研究后端渲染机制,但它们还没有上台。JQuery+Bootstrap+RequireJS非常有用。nly提供了按需加载机制,也使我们能够组织更大的代码。如果不使用RequireJS,另一个国内选项是SeaJS,其规范是CMD。此外,还有通用JS规范,但是它不能直接在前端运行,需要合并。在fekit、FIS、Webpack和其他构建工具的帮助下。无论如何,您此时选择的框架必须具有AMD、CMD或Common JS的任何加载规范,这将有助于您将来的水平扩展。至于插件,目前使用的是小型插件,可以允许AMD、C。MD,普通JS加载的任何类型的加载器。
如果您的产品是移动的,那么它基本上是SPA架构,因为它减少了等待、页面刷新和请求的数量。目前,该字段非常混乱,不像PC端,有N倍以上的兼容浏览器,对于性能,浏览器供应商会攻击或更改特性。浏览器的特性常常导致一些奇怪的BUG,这些BUG正在被社区整理。但是目前还没有一个框架来解决所有这些问题,这需要多管齐下的方法。我的观点是:
RequireJS(按需加载,移动端不能打包,好好利用304缓存,腾讯做了更多的分叉增量更新加载器MT,你也可以试试)+骨干(组织代码和路由管理)+Zepto(轻量级DOM操作)+fastclick.js(点击通过并延迟处理)ng) +Hammer.js(各种触摸屏事件)+IScroll5.js(滚动条处理)+.te.css(CSS3动画)+查询js(处理响应布局)。
可以看到,移动端的每个部分都腐烂到雌蕊,每个部分都需要特殊的工具来修复。移动是非常面向经验的,每个角落都有动画,但是浏览器或WebView很差,所以Native和Hybird的话题一直很热门。ince DOM对性能最友好,然后简单地用Canvas替换它(参见:和)。Facebook还引入了它自己的类似解决方案ReactNative,它实现了GUI,但是编写语言是JavaScript。AY是一条道路。但是利弊是显而易见的,就像角的强大Java风一样,反应是一个大标签语言(JSX)的逻辑插入。Read也是非常排他性的,很难与其他库一起使用。同时,我们可以看到JQuery Mobile,从著名的jQuery门,是没有的。包括T。性能太差了,甚至SenchaTouch也比不上。我上面提到的都是核心库,但是我还没有离开UI库。没有几个UI库叫做Mobile.。由于忽略了IE,CSS3可以被大胆使用。目前,基础、语义、填充和棘轮是最突出的,如果你只想在平板电脑上运行,性能问题就不会那么紧,我们可以试试Inic、SeChanouCh、Kunoui Mobile…
基本上,我已经列出了每个平台的一些主流框架,但这并不意味着你能够处理它们。小马过马,母牛过膝,松鼠半淹死,仅此而已。初创公司喜欢新框架,因为它们可以雇用一两头前端公牛薪水不高。基本上,他们做所有的网页,所以使用角度或灰烬没有什么不同。小公司很谨慎,会损失很多员工。jQuery+RequireJS是黄金油。大公司基本上都有自己的技术沉淀,换句话说,它们应该有自己的前端框架,除非它很旧,并且不建议重新发明轮子。大公司的建议是建立自己的技术委员会根据其人员配置来选择框架。俗话说,最好的不是最好的,而是最合适的。有些框架属于牛中的牛,牛中的牛,和混乱中的两只手。对于一些中型公司来说,成长很快,这是最重要的事情要防范。有牛和公牛,但战斗的主体70%是受过训练的实习生。很难开始。不完整的中文文件的框架必须过滤掉。我不排除车轮的可能性。毕竟,一些公司才华横溢,能够推出可靠的开源产品来造福社会。
但是,无论我们选择什么框架,还是决定建立自己的车轮,我们都不应该忘记,技术必须使我们的工作和生活更加轻松和幸福。我们只能选择我们可以控制的框架。我们不能保证它在一年内会过时,但至少不会成为绊脚石。用亚当·史密斯(税收是必须的罪恶)的话来说,这个框架是必须的罪恶,它受到强烈的约束,所以我们必须谨慎选择。
作者简介:钟琴城,网名司徒正美,是中国最早研究装载机、选择器和MVVM的人之一。他是《Javacript Framework Design》的作者,作为一名穿梭于二进制和二进制之间的魔术师,我们努力发现各种各样的黑魔法,提高一般前端工程师的生产率。