JS模块化开发(一)

模块化开发要解决的问题:

1.冲突

比如:多人协作开发时,不同js库中的函数重名问题

可以用命名空间解决:

var module={}
module.a=1;
module.b=function(){}
...

命名空间的缺点:

1)写起来较为复杂(特别是涉及到多级命名空间时)

2)只能减少冲突,不能完全消除冲突(两个开发人员恰巧用了同名的命名空间)

2.依赖

引入了多个存在依赖关系js库,后期维护不断增删js库,导致混乱,出现问题

时间: 2024-12-08 09:33:18

JS模块化开发(一)的相关文章

JS模块化开发(三)——seaJs+grunt

1.seaJs直接构建存在的问题 由于模块之间的依赖require引用的是模块名,当多个js模块被合并成一个时,会由于找不到模块名而报错 2.seaJs+grunt开发 用到的插件:grunt-cmd-transport和grunt-cmd-concat       (CMD规范) grunt-cmd-transport:提取本模块的ID和本模块所依赖的ID(数组格式),作为define函数的两个参数:define(ID,[依赖数组],function(require,exports,modul

JS模块化开发(requireJS)

使用模块化开发的好处: 通过 exports 暴露接口.这意味着不需要命名空间了,更不需要全局变量.这是一种彻底的命名冲突解决方案. 通过 require 引入依赖.这可以让依赖内置,开发者只需关心当前模块的依赖,其他事情 Sea.js/ Require.js 都会自动处理好.对模块开发者来说,这是一种很好的 关注度分离,能让程序员更多地享受编码的乐趣 实现JS模块化开发,目前有两个规范,一个是AMD规范,一个是CMD规范. RequireJS遵循的是AMD规范.AMD推崇依赖前置. SeaJS

js模块化开发

为什么要进行模块化开发? 1.当你写了一个这样的comm.js文件时,里面有function tab(){}方法,这时,你给你的同事用,你同事把这个comm.js引入页面后,在页面上又写了一个function tab(){},这时,就会覆盖你在comm.js中的tab方法.因为这个同事不知道你comm.js中有tab这个方法名. 2.如果你同事在页面上引入了你写的comm.js后,又引入了一个第三方插件xxx,而这个xxx插件里面刚好也有tab方法,那这时就会出现问题.你同事就会找你,说你写的c

JS模块化开发:使用SeaJs高效构建页面

一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就更别说会知道js还有面向对象,设计模式,MVC,MVVM,模块化,构建工具等等这些高大上的概念了.现在想想还真是Too young too naive.前两天某大神在群里分享他招聘前端的心得的时候就说,就是那些以为能写两个页面就可以自称前端的人拉低了行业水平.这样看来前两年我还真的扯了不少后腿呢……

JS模块化开发----require.js

前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前端开发得到重视,也使得前端项目越来越复杂,然而,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,所以,进行模块化开发的重要性就不言而喻了.那么什么是模块呢? 一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功

js模块化开发--AMD--CMD

什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前端开发得到重视,也使得前端项目越来越复杂,然而,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,那么什么是模块呢? 一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块.模块开发

js模块化开发——前端模块化

在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可:如今CPU.浏览器性能得到了极大的提升,很多页面逻辑迁移到了客 户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀 这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码 模

从node.js模块化开发来了解javascript闭包

之前看过很多关于javascript闭包的解释,只有短短几个demo,一大段晦涩难懂的介绍,巴拉巴拉一大段闭包的概念,但是到最后也没看懂闭包到底是什么意思,起什么作用,直到昨晚凌晨,我在学习node.js模块开发的时候,才突然恍然大悟,所以赶紧记下来,免得以后忘记.代码来源:廖雪峰的网站node.js教程. 直接上代码: 我们首先编写了一个hello.js文件,这个hello.js文件就是一个模块,模块的名字就是文件名(去掉.js后缀),所以hello.js文件就是名为hello的模块. 我们把

2.精通前端系列技术之JS模块化开发-深入学习seaJs(四)

深入学习seajs 配置信息 alias : 别名配置 paths : 路径配置 vars : 变量配置 map : 映射配置 preload : 预加载项 debug : 调试模式 base : 基础路径 charset : 文件编码 深入学习seajs module id : 模块唯一标识 uri : 模块绝对路径 dependencies : 当前模块依赖 exports : 当前模块对外接口 require.async 异步加载模块 // JavaScript Document //va