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不是更简单吗?
随机推荐
- struts.xml路径修改后的web配置
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" ...
- NetHogs 实时检测网络流量 转
有很多适用于Linux系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时 ...
- scala学习之实现RPC通信
最近学习scala,个人感觉非常灵活,实现rpc通信非常简单,函数式编程比较烧脑 1.搭建工程 创建scala maven 工程 项目pom文件 <project xmlns="htt ...
- DB2导入导出数据
1.导出表数据到txt文件: export to /brcb_edp/data_public_edp/file/CCDM/file/FILE_CCDM_DR_CARD_CUST_DET.txt of ...
- 201621123006 《Java程序设计》第2周学习总结
1. 本周学习总结 以几个关键词描述本周的学习内容.并将关键词之间的联系描述或绘制出来. 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴. java数据类型:java数据类型分为 ...
- RESTful设计方法
REST REST,即Representational State Transfer的缩写.维基百科称其为“具象状态传输”,国内大部分人理解为“表现层状态转化”. RESTful是一种开发理念.维基百 ...
- Linux:cd命令详解
cd 用来变更用户所在目录的 绝对路径:路径的写法一定由根目录 "/" 写起.例如 /usr/local/mysql 这就是绝对路径.相对路径:路径的写法不是由根目录 " ...
- nginx Linux 开启自启
编辑 /etc/init.d/nginx 添加一下内容 根据路劲修改. 添加可执行权限 chmod +x /etc/init.d/nginx 开启自启 chkconfig nginx on ...
- TeamTalk源码分析(十一) —— pc客户端源码分析
--写在前面的话 在要不要写这篇文章的纠结中挣扎了好久,就我个人而已,我接触windows编程,已经六七个年头了,尤其是在我读研的三年内,基本心思都是花在学习和研究windows程序上 ...
- Scrapy爬虫库使用初体验
安装pip install Scrapy 中间可能会遇到的问题: 超时,网络问题需要多次尝试 缺少vc++库,官网可以下载 win32api缺失,https://sourceforge.net/pro ...