`
suqing
  • 浏览: 186717 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

前端模块化

 
阅读更多
前端模块化解决什么问题?
有了模块,我就可以很方便的使用别人的代码,想要什么功能,就用加载什么模块。但是,这样做需要有一个前提,那就是大家必须以同样的方式编写模块,否则就乱套了。所以组内需要有一套统一的模块规范。
 
如何实现模块?
1、对象字面量的变体
2、JS设计模式的模块模式
3、采用成熟的库文件。前两种方式各模块的脚本被串在一起注入到DOM中,整个体系架构在这种模式下,可能会命名冲突。要简洁地管理依赖关系,不通过一些手工处理或借助第三方库往往是不可能的。
 
先理清一些概念 :
服务器端模块:在服务器端运行的模块,因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间
浏览器端模块对于浏览器加载模块,模块原先都放在服务器端,等待时间取决于网速的快慢,可能要等很长时间,浏览器处于"假死"状态。因此,浏览器端的模块,不能采用"同步加载"(synchronous),只能采用"异步加载"(asynchronous)。这也是AMD规范诞生的背景。

 

目前流行的模块规范:
1、CommonJS规范: 服务器端模块的规范,Node.js(Node Modules)采用了这个规范。​Module 1.0已被Module1.1取代。主要包含模块标准程序包标准
​2、CMD规范浏览器端模块的规范,遵循Modules/Wrappings规范,贴近 CommonJS Modules/1.1 和 Node Modules 规范。代码比较容易向Node迁移。
3、AMD规范浏览器端模块的规范
4、ECMAScript6/Harmony 模块规范:JS标准草案。包括可在服务器端和浏览器端使用的Module,一个Module loader,和其他。虽然可以在某种程度上可以尝试一下这样的特性,但是要记住可能用 Harmony 来规划你的系统可能并不是个好主意(只是说目前还不是)。规范发生变化以及潜在的在跨浏览器层面的问题都会带来风险(比如 IE9 可能会要过较长的时间才会消亡),所以在标准最终确定及其覆盖率不成问题之前,你最好还是把注下在 AMD(用于浏览器内运行的模块)与 CommonJS(用于服务器)身上。
 
流行的浏览器脚本加载器:
1、requireJS:遵循AMD规范,既支持浏览器模块,又支持服务器端模块。异步加载,提前加载。
2、seaJS:遵循CMD规范,支持浏览器模块。异步加载,执行时加载。
技术选型选择SeaJS,关于SeaJS的资料:
 
参考资料:
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html
http://javascript.ruanyifeng.com/nodejs/commonjs.html
http://nodejs.org/api/modules.html
http://www.commonjs.org/specs/
http://justineo.github.io/singles/writing-modular-js/
分享到:
评论

相关推荐

    Web前端模块化开发教程(ES6+Node.js+Webpack)_源代码.zip

    在前端模块化开发中,Node.js用于搭建开发环境,安装和管理依赖,以及构建和打包工具。 4. **Webpack**:Webpack是一个现代JavaScript应用程序的静态模块打包工具。它的工作原理是将项目视为一个模块依赖图,...

    Web前端模块化开发教程课件(完整版).pptx

    Web前端模块化开发教程课件(完整版).pptx

    Web前端模块化开发教程全套ppt课件最全电子讲义完整版教学教程整套全书课件ppt.pptx

    "Web前端模块化开发教程全套ppt课件最全电子讲义完整版教学教程整套全书课件ppt.pptx" 本资源是一个关于Web前端模块化开发的教程,全套ppt课件包括了从ES6基础到模块化开发的各个方面的知识点。下面是从标题、描述...

    前端模块化设计思路

    前端模块化设计是一种高效、可复用的编程思想,它旨在优化前端开发流程,提高代码组织的清晰性和可维护性。模块化的核心理念是减少循环依赖和耦合,通过合理划分模块,使得每个模块专注于自己的功能,从而提高设计...

    用于前端模块化使用的jq

    标题提到的"用于前端模块化使用的jq"指的是经过特殊处理的jQuery版本,这个版本是为前端模块化开发优化的,能够帮助开发者更高效、更灵活地在项目中引入jQuery。 在传统的前端开发中,jQuery通常通过 `<script>` ...

    前端模块化.xmind

    前端模块化.xmind

    前端模块化1

    前端模块化是现代Web开发中不可或缺的一部分,它允许开发者将复杂的应用程序分解为多个独立的模块,从而提高代码的可读性、可维护性和复用性。模块化的核心思想是将一个大型程序划分为若干个模块,每个模块都有自己...

    前端模块化webpack1

    【前端模块化webpack1】 前端模块化是现代Web开发中不可或缺的一部分,它使得代码组织更加有序,便于维护和复用。随着技术的发展,模块化的规范也在不断演进,包括CommonJS、AMD(Asynchronous Module Definition)...

    Web前端模块化框架BrowserRequire.zip

    编写BrowserRequire目的不在于统一前后端模块使用,而是做一款更适合Web前端开发需求的模块化框架; 更好的处理了模块与非模块间的使用; 更像是LABjs requireJS的结合增强版,但打包源文件只有7kb左右; ...

    前端模块化脚手架,可实现类似java的封装继承多态特性

    在现代Web开发中,前端模块化已经成为不可或缺的一部分,它能够帮助开发者组织代码,提高代码复用性和可维护性。这个名为“前端模块化脚手架”的工具,旨在为前端开发者提供一个类似于Java语言的封装、继承和多态...

    05-前端模块化.pdf

    前端模块化开发是互联网前端领域的一项重要技术,它的主要目的是将复杂的程序分解成一系列容易管理和维护的模块。在网页开发的早期阶段,JavaScript主要用于做一些简单的表单验证或动画实现,代码量较少,可以直接写...

    前端模块化开发解决方案详解.docx

    前端模块化开发解决方案详解 前端模块化开发解决方案详解是指在前端开发中,为了提高代码的可维护性、可读性和可扩展性,而采用的一系列技术和规范的集合。这些解决方案的核心价值都是让 JavaScript 的模块化开发变...

    ionic项目应用requireJs前端模块化 示例

    在本文中,我们将深入探讨如何在 Ionic 项目中利用 RequireJS 进行前端模块化开发。RequireJS 是一个流行的 JavaScript 模块加载器和构建工具,它使得代码组织更加有序,便于维护和优化。Ionic 是一个基于 AngularJS...

    前端模块化进程-requirejs seajs

    requirejs seajs amd cmd,该PPT主要用于讲解前端模块化的前世今身。 requirejs seajs amd cmd,该PPT主要用于讲解前端模块化的前世今身。

    yuanjs,基于react的前端模块化框架.zip

    yuanjs,基于react的前端模块化框架.zip

    Web前端模块化组件seajs-3.0.0版

    除了解决命名冲突和依赖管理,使用 Sea.js 进行模块化开发还可以带来很多好处: 模块的版本管理。...直到最近两三年,随着 Dojo、YUI3、Node.js 等社区的推广和流行,前端的模块化开发理念才逐步深入人心。

    Web前端模块化开发教程(ES6+Node.pptx

    Web前端模块化开发教程(ES6+Node.pptx

    angular前端模块化

    angualar模块化开发与实用案例

Global site tag (gtag.js) - Google Analytics