requirejs 到底有什么好处?
无论是在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 到底有什么好处?的更多相关文章
- CommonJS、AMD、CMD、NodeJs、RequireJS到底有什么联系?
JS中的模块规范(CommonJS,AMD,CMD),如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范,本文包括这三个规范的来源及对应的产物的原理. 一.C ...
- requireJS到底是什么?
1.requireJS是让js代码模块化:而且js之间的依赖关系,不再依靠script标签的顺序,可以加载不阻塞 2.requireJS加载js的方法:<script data-main=&qu ...
- 企业为什么要实行ERP系统,它到底有什么好处呢?
目前,我国正在大力推行企业信息化建设,作为一种包含了现代管理思想的ERP(Enterprise Resource Planning)系统日益成为现代企业业务运作的主要工具,为了提升管理水平,提升企业竞 ...
- 将requirejs进行到底(一)
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
- RequireJS入门级_RequireJS能给我们带来什么帮助?
前言:其实很早前就已经接触和了解到RequireJS了,当时只是大概明白它能用来控制JS的加载顺序,即:页面一定要先加载这个JS,再加载那个JS,对于RequireJS的好处还没有一个真正的体会和认识 ...
- requirejs基础教程
一.初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用. ...
- 语义化的html结构的好处
HTML是提供网页文档内容的上下文结构和含义:html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗:<strong>是加粗的,不要认为这是html的表现, ...
- JS模块化工具requirejs教程(一):初识requirejs
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
- @synthesize 有什么好处?
如果不用 synthesize,操作的是 @property中定义的变量,使用synthesize之后,间接的操作了一个新的成员变量,到底有什么好处?直接只用一个@property不是更简单吗?
随机推荐
- 最近玩了一下qt5.2.1,顺着写点东西,关于这个版本设置程序主窗口居中
#include <QtGui/QGuiApplication> #include <QDebug> #include <QScreen> #include &qu ...
- UIWebView和WKWebView的使用及js交互
UIWebView和WKWebView的使用及js交互 web页面和app直接的交互是很常见的东西,之前尝试过flex和js的相互调用以及android和js的相互调用,却只有ios没试过,据说比较复 ...
- 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hdu 3032 Nim or not Nim? sg函数 难度:0
Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Javascript-- jQuery动画篇(淡入淡出效果)
淡入淡出效果 jQuery 提供了下面几种方法可以实现显示的淡入淡出效果: fadeIn() fadeOut() fadeToggle() fadeTo() fadeIn()方法 fadeIn()实现 ...
- 在pycharm中自定义模板代码,快速输出固定代码块
pycharm中有时会经常输出固定一段代码,为避免每次重复输入,可以自定义一段模板代码,请看以下图教程: 1. 点击 file 里面的 setting 2. 在搜索框输入live,就会显示出 ...
- Xcode 8 插件安装
1.删除旧插件 cd ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-in rm -rf ../Plug-ins 2.Xcode重 ...
- 【转】DirectUI 资源提取器
转自 http://www.cnblogs.com/Alberl/p/3378413.html 二.DirectUI 资源提取器 由于不能用传统工具,那么怎么办呢?可能有很多网友都知道QQ ...
- [置顶]
Android AOP 实践笔记
本文同步自wing的地方酒馆 最近博客更新越来越慢了,有两方面原因: 1.没啥好写的. 2.应该沉下心好好沉淀自己,积累一些东西,博客写的太频繁有"刷博客"之嫌,还容易浮躁. 浮躁 ...
- caffe官网的部分翻译及NG的教程
Caffe原来叫:Convolutional Architecture for Fast Feature Embedding 官网的个人翻译:http://blog.csdn.net/fengbing ...