关于JavaScript的模块化
为什么需要模块化
最近在学习网易微专业的《前端系统架构》课程,里面讲到了关于JavaScript的模块化问题。具体指的是当随着Web系统不断强大起来,需要在客户端进行的操作就多了起来(比如数据验证、人机交互等)。这时候你会发现很多代码其实是可以重用的,于是你就会想着重用代码,将其模块化。下面几篇文章可以让你更深入地理解问什么要将JavaScript模块化:
模块化到底怎么搞?
《前端系统架构》课程的视频说得太过于跳跃,没有任何的背景交代。我后来又去查了查相关的资料,发现了阮一峰写的3篇关于JavaScript模块化的文章很是清晰,而且内容跟课程视频结构是差不多的。
看完了上面的3篇文章,你应该对模块化有一个大致的概念了,并且知道了一大堆规范和名词,什么CommonJS / AMD / NodeJS 等等。但到这里,你要明白的其实就是一个方面,即模块化的规范最常见的有CommonJS和AMD两种,它们定义了编写模块化代码的格式。
到了这里,你知道了原来模块化需要遵循特定的编写规范,但到底如何在代码里实现呢?
将模块化实践
其实在上面的一些文章中,已经有说到了一些关于模块化的实践了。总的来说,现在非常流行的Node.js、Sea.js、Angular.js、require.js等都是模块化的一种实现方式,可以理解成一种模块化的框架吧。接下来要学习如何把模块化应用到项目中,你只需要选择一种进行学习就可以了。
什么是服务器端的JavaScript
服务器端的JavaScript即在服务器端运行JavaScript,现在JDK6+已经支持了这种功能。很多时候,我们需要再客户端和服务器端对请求的数据进行相同的逻辑检查,这很明显就是重复工作,违背了DRUP(Don't Repeat yourself Principle)原则。因此通过服务器端运行JavaScript可以减少重复代码。关于如何在服务器端运行(这里只以Java为例)可以参考以下文章:
关于JavaScript的模块化的更多相关文章
- 深度扫盲JavaScript的模块化(AMD , CMD , CommonJs 和 ES6)
原文地址 https://blog.csdn.net/haochangdi123/article/details/80408874 一.commonJS 1.内存情况 对于基本数据类型,属于复制.即会 ...
- javascript中模块化知识总结
JavaScript 模块化开发 1. 模块化介绍 掌握模块化基本概念以及使用模块化带来的好处 当你的网站开发越来越复杂的时候,会经常遇到什么问题? 恼人的命名冲突 繁琐的文件依赖 历史上,JavaS ...
- javascript代码模块化解决方案
我们用模块化的思想进行网页的编写是为了更好的管理我们的项目,模块与模块之间是独立存在的,每个模块可以独立的完成一个子功能. 一.服务器和桌面环境中的Javascript代码模块化:CommonJS M ...
- JavaScript的模块化之AMD&CMD规范
前端开发常常会遇到的问题: 1.恼人的命名冲突: 2.繁琐的文件依赖: 模块化开发的优势: 1.解决命名冲突和依赖管理: 2.模块的版本管理: 3.提高代码的可维护性: 4.前端性能优化: JavaS ...
- 学习了一下javascript的模块化编程
现在在我脑海里关于“模块化”的概念是这些词:简单.具有逻辑之美.易用.健壮.可扩展.似乎这些形容与我现在水平写出的代码有点格格不入啊. 所以今天想了解和简单的实践一下“模块化开发”. 1.首先学习一下 ...
- JavaScript之模块化编程
前言 模块是任何大型应用程序架构中不可缺少的一部分,模块可以使我们清晰地分离和组织项目中的代码单元.在项目开发中,通过移除依赖,松耦合可以使应用程序的可维护性更强.与其他传统编程语言不同,在当前Jav ...
- Javascript AMD模块化规范-备用
AMD是"Asynchronous Module Definition"的缩写,意思是"异步模块定义". 模块定义define(id?, dependencie ...
- Javascript的模块化编程
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者 ...
- Javascript 的模块化编程及加载模块【转载+整理】
http://www.ruanyifeng.com/blog/2012/10/javascript_module.html 本文内容 引入 模块化 最初写法 对象写法 立即执行函数写法 放大模式 宽放 ...
随机推荐
- 非名校毕业年薪20W程序员 心得分享
大家好,我是落落http://blog.csdn.net/robinson1988/ QQ692162374,其实我选择Oracle是一件很神奇的事情,但是现在回想起来又觉得是命中注定.我2006年就 ...
- 子进程 已安装 post-installation 脚本 返回错误状态 1,dpkg: 处理软件包 python-crypto (--configure)时出错: 该软件包正处于非常不稳定的状态;
这几天在学习redis的时候,装软件总是报错,两个问题都和dpkg有关,上网查阅了些解决办法,发现整体来说执行以下方法均可解决. 虽然每个人需要安装的包不同,但是出现此类问题的不同也只有安装包的名字, ...
- d3.js 绘制极坐标图(polar plot)
0.引言 在极坐标系中,任意位置可由一个夹角和一段相对原点(极点)的距离表示.也就是说,我们可以用 (angle,r) 来表示极坐标系中的点. 1.数据 假设我们有如下数据集[ [10, 0.2], ...
- SuperWebClient -一个基于CURL的.NET HTTP/HTTPS模拟神组件(1)
我们都知道,不管你是做爬虫也好,采集工具也罢,它们的HTTP/HTTPS模拟访问总是一个基础问题,我估计有很多人和我一样,虽然这样,那样的内置或是第三方类库用了很多,却总是会有一些不如意的问题存在,亦 ...
- windows 2003装.net 4.0时提示 WIC windows Imaging Component
运行此安装程序之前,必须安装32位windows映像处理组件(WIC) WIC windows Imaging Component下载地址: http://download.microsoft.com ...
- HTML文档中使用JavaScript和css
HTML文档中使用JavaScript和css 引入css 内嵌式引入:将css代码写在HTML中的style标签里面 <!DOCTYPE html> <html> <h ...
- MyBatis的类型自定义映射
背景 利用MyBatis将数据库的时间类型映射成Java8的时间类型,引申对不同类型的自定义映射 实现方法 1.实现MyBatis中TypeHandler接口 @MappedTypes(value = ...
- JQuery实现Ajax跨域访问--Jsonp原理
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...
- 3101: N皇后
3101: N皇后 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 88 Solved: 41[Submit][S ...
- 2729: [HNOI2012]排队
2729: [HNOI2012]排队 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 957 Solved: 449[Submit][Status] ...