关于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 本文内容 引入 模块化 最初写法 对象写法 立即执行函数写法 放大模式 宽放 ...
随机推荐
- Angela Merkel poised for record poll win and historic third term
Her success remains a mystery for many, but victory could see the German chancellor beat Thatcher's ...
- BZOJ 3564: [SHOI2014]信号增幅仪(随机增量法)
如果是个圆的话好办,如果是拉成椭圆呢?直接压回去!!! 然后随机增量法就行了 CODE: #include<cstdio> #include<iostream> #includ ...
- 纪中集训 Day 6
今天他们回去了,就剩我和DWJ(一位初三大大(后来问云神才知道的ORZ))一起在做题,不得不说他真的是太厉害了,一个升初三大大在各种方面都比我强QAQ 让我突然感觉到自己的高一还是不够努力啊QAQ 连 ...
- Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC
What's In This Chapter? Features of ASP.NET MVC 6 Routing Creating Controllers Creating Views Valida ...
- mvc关于三级联动修改时数据回显
在网上找了好久,都没有找到自己想要的那种效果,最后还是自己写出来了, 虽然方法有点笨. 这是Controller里 public ActionResult Edit(string id) { //查询 ...
- linux 之程序管理
一个程序的父进程可以用PPID来判断 命令ps -l 可以用来观察程序相关的输出信息 被关闭的程序又产生:crontab或者父进程产生的 我们将常驻在系统中的程序称为:服务(daemon) ...
- 类中的两大类(string类、math类)的应用
类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...
- python excel操作总结
1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2 ...
- JNI只C性能测试
深入学习JNI之前,介绍一个比较好的学习文档:jni详细教程.我这里只是一个Demo测试性能,至于入门教程请看我前一篇博文. Demo展示 这个Demo用于从小到大的冒泡排序,App.java代码: ...
- Servlet中表单的重复提交
1.用户登录页面: ->设置一个UUID到session中 ->将UUID添加到隐藏域中,提交到服务器 <% //进入页面,设置一个UUID,将UUID添加到session中 Str ...