JS模块化

js模块化是一种开发规范
可以降低代码耦合度,避免命名冲突,按需加载,更好的处理依赖冲突等

CommonJS

http://wiki.commonjs.org/Modules/1.1

每个文件都可以当做一个模块
在服务器端,模块的加载是运行时同步加载的
在浏览器端,模块需要体检编译打包处理

基本语法:
暴露模块: module.exports = value
exports.xxx = value
暴露出来的模块就是exports对象
引入模块: require()

服务器端: 引入node.js
浏览器端: 引入Browserify
官网:http://browserify.org/
首先要npm install browserify -g全局安装
然后 npm install browserify --save -dev 局部安装 这两部都需要执行(-dev表示开发环境所用到,生产模式不用此包)
利用 browserify js文件地址 -o 打包生成后文件存放地址 打包处理js
然后可以在页面通过script标签引入打包后的js文件进行使用

引入第三方库的语句要写在引入自定义模块语句的上面

AMD

专门用于浏览器端,模块的加载是异步的

定义没有依赖的模块:

define(function(){
	return 模块
	})

定义有依赖的模块

define(['module1', 'module2'], function(m1,m2){
	return 模块
	})

引入使用模块

require(['module1', 'module2'], function(m1,m2){
	使用m1,m2
	})

实现:
require.js
网址: http://www.requirejs.cn/

创建项目结构:
/ - js
/ - libs
/ - require.js
/ - modules
/ - 各种自定义的js文件
在此定义暴露
/ - main.js
在此引入各种需要的

(function() {
requires.config({
	path:{ //配置路径
		模块名: '模块路径',  // 不要加.js 默认有
	}
})

requirejs(['模块名'], function(m){
	使用m
})
}()

/ - index.html
引入require.js并指定js主文件入口

引入main.js即可

CMD

一般只有阿里内部用
也是用于浏览器端,模块异步加载,按需加载

ES6

导出模块:export
引入模块:import

export采用分别暴露时,必须采用结构赋值的形式进行引入

export function foo() {}
export function foo1() {}

import { foo, fun } from ’文件路径'

采用默认暴露

export default {
	msg  = "..";
	.....
}

import 自定义名称 from '...';

自定义名称.msg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值