无论是在backbone时代,还是angularjs 时代 我都用过requirejs, 后来慢慢全都去掉了, 因为在前端开发requirejs 感觉没有带来任何实质性的好处.

从几个方面说说我的感受

1 文件加载 文件加载已经很多, 即使手动用script 引入我也感觉很方便, 因为理由主要有几点, 前端的页面没有非常复杂, 虽然我现在已经不推荐SPA, 即使是目前主流的网站,新浪微博, 淘宝, 的页面 也没有多复杂, 我真的不相信js已经大到比后端还复杂的程序, 一个后端路由出来的页面不会有多复杂. 这是一定的, 我觉得最复杂的应用也就是企业ERP了, 网站这种页面的确不太复杂.

另外一点就是生产环境一般都是压缩成一个文件, 文件就一两个script就够了, requirejs在生产环境完全没用. 文件加载这块, labjs head.js 已经够用了.

2 js模块化 和 模块依赖

requirejs 也就在这里 而且是在开发环境 看起来有点作用, 其实也不大, 模块化这个问题还是看具体用的库的写法, 非要都按照requirejs 来 完全是增加了开发成本, 至于依赖也是同样道理 你用angular, 用ember 用其他, 依赖问题库都解决了, 为啥还用requirejs?

另一观点requirejs 可以解决团队大规模协作的问题, 我不知道每个公司的前端团队有多少人,可能例如淘宝都是30人起步的, 但即使是30人, requirejs仅仅解决了js得模块化, 例如未来的html import, 没有根本解决模块的问题, 而且不引入mvvm库, requirejs 没有减少任何代码量. 和backbone差不多 哈哈.

3 组件化

为什么我觉得组件化 和模块化 不能混为一谈, 看看polymer就知道了, 我们前端还是希望组件化, 这样可以重用.

我来说说 ”重用” 首先,对用户的产品 重用基本是伪命题, 就像跨平台一样, 重用的组件必然用户体验不佳, 重用的组件适合做后台统计等不强调用户体验的产品.

还有组件化,是html 组件化, 还是css 组件化, 还是js组件化? 目前没有定论, 我希望是html组件化 声明式组件这样用起来方便, 不希望是js组件化 requirejs 这里基本就和组件化就没啥关系了.

所以我感觉requirejs 除了在开发环境中 引用一些js基础库方便,例如underscore这种, 基本没啥好处, 引入一大堆语法不说, 搞得所有库都要写成这样, 代码没减少反而多加了几行. 还不如只引用小型mvvm库提高生产力效率 来的方便易用.

requirejs 到底有什么好处?的更多相关文章

  1. CommonJS、AMD、CMD、NodeJs、RequireJS到底有什么联系?

    JS中的模块规范(CommonJS,AMD,CMD),如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范,本文包括这三个规范的来源及对应的产物的原理. 一.C ...

  2. requireJS到底是什么?

    1.requireJS是让js代码模块化:而且js之间的依赖关系,不再依靠script标签的顺序,可以加载不阻塞 2.requireJS加载js的方法:<script data-main=&qu ...

  3. 企业为什么要实行ERP系统,它到底有什么好处呢?

    目前,我国正在大力推行企业信息化建设,作为一种包含了现代管理思想的ERP(Enterprise Resource Planning)系统日益成为现代企业业务运作的主要工具,为了提升管理水平,提升企业竞 ...

  4. 将requirejs进行到底(一)

    随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...

  5. RequireJS入门级_RequireJS能给我们带来什么帮助?

    前言:其实很早前就已经接触和了解到RequireJS了,当时只是大概明白它能用来控制JS的加载顺序,即:页面一定要先加载这个JS,再加载那个JS,对于RequireJS的好处还没有一个真正的体会和认识 ...

  6. requirejs基础教程

    一.初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用. ...

  7. 语义化的html结构的好处

    HTML是提供网页文档内容的上下文结构和含义:html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗:<strong>是加粗的,不要认为这是html的表现, ...

  8. JS模块化工具requirejs教程(一):初识requirejs

    随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...

  9. @synthesize 有什么好处?

    如果不用 synthesize,操作的是 @property中定义的变量,使用synthesize之后,间接的操作了一个新的成员变量,到底有什么好处?直接只用一个@property不是更简单吗?

随机推荐

  1. UVALive-4287 Proving Equivalences (有向图的强连通分量)

    题目大意:有n个命题,已知其中的m个推导,要证明n个命题全部等价(等价具有传递性),最少还需要做出几次推导. 题目分析:由已知的推导可以建一张无向图,则问题变成了最少需要增加几条边能使图变成强连通图. ...

  2. (3) iOS开发之UI处理-UIView篇

    在UIView作为许多子控件的容器的时候,首先我们需要动态的计算出UIView下的所有子控件的高度,并布局排列好,然后我们还要把作为容器的UIView的高度调整到刚好包裹着所有子控件,不会过矮,也不会 ...

  3. (2) iOS开发之UI处理-UILabel篇

    我们经常要根据内容去动态计算控件的高度,比如一个UILabel控件,常常要显示多行内容,并且计算出总高度,如果每个UILabel要多行显示,都要写这么一段代码是非常痛苦的,看代码如下:     我想大 ...

  4. office套件

    一.PDF模块 使用PyPDF2模块 pip install PyPDF2 1.1 从PDF读取数据 直接读取,并打印出来.但是这种打印存在一个问题,不能中文字符 import PyPDF2 impo ...

  5. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  6. Fast Walsh-Hadamard Transform

    这玩意最近经常出现额…… FFT解决的问题是\[C_{k}=\sum_{i+j=k}A_i \cdot B_j\] 其中\(A\).\(B\).\(C\)是三个列向量. 而FWHT是将\(\sum\) ...

  7. 028——VUE中事件修饰符once

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)

    1.概述 作用:提供了使用PL/SQL实现ALTER SESSION命令,SET ROLE命令和其他会话信息的方法 .2.包的组成 1).set_identifier说明:用于设置会话的客户ID号.语 ...

  9. C#使用Docx操作word文档

    C#使用Docx编写word表格 最近接手了一个小Demo,要求使用Docx,将Xml文件中的数据转换为word文档,组织数据形成表格. 写了已经一周,网络上的知识太零碎,就想自己先统计整理出来,方便 ...

  10. new/delete工作机制

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...