模块化

JS 模块化

以前的模块化都是通过命名空间来实现的。例如:

var obj = {};
obj.origin = obj.origin || {};
obj.origin,method = function(){}

后来我们用 amd规范 和 cmd规范 来实现模块化
amd(异步加载模块) 的具体实现是require.js,cmd(同步加载) 的具体实现是Sea.js

amd 、cmd (web端模块化规范)

amd 和cmd都是模块化规范。
amd对应的是requireJS库。
amd是异步加载模块的。

cmd对应的是SeaJS库。
cmd加载模块是同步的。

  • amd
    a.js 定义模块
define([],function(require,factory){
	return {
             add:function (a,b){
             		console.log(a + b);
             }
        }
}

b.js 导入模块

require(['./amd.js'],function(a){
	a.add(1,2);
}

数组中可以添加当前js文件所要依赖的模块,后面的函数里的参数与前面数组里的每一项一一对应,例子中形式参数‘a’就代表前面数组引用的amd.js.

Es module (es6)

a.js 定义模块

两种导出方式(与下文的导入方式对应)
1. export var a = 10;  export var b = 20
2. var a = 10 ; var b = 2;50; export default{a}

b.js 定义模块

1.impot {a} from './a.js'
console.log(a)  //10
2. import a from './a.js'
console.log(a.b ) //50

导出方式与导入方式对应。

CommonJs (服务端模块化规范)

CommonJs 规范的具体实现是 node.js
a.js 定义模块

两种导出方式
1.var a = 10;
var b = function (a,b) {
	return a + b;
}
model.exports = {
	a,b
}

2.exports.a = 10;
exports.b = function(a,b){
	return a + b
}

b.js 导入模块

var demo = require('./a.js)
demo.b(12);

css模块化

oocss (面向对象Css)

一个样式一个类名,通过添加类名的方式实现需求的样式,适用于有很多重复样式的大型项目。

 /*OOCSS编写方式*/         
 .w100 {             
 	width: 100px;         
 }         
 .h100{             
 	height: 100px;         
 }         
 .bgcRed{             
 	background-color: red;         
 }

Amcss (属性模块)避免使用过多的class

通过CSS属性选择器实现
例如 : vue style标签的 scoped 属性
scoped会生成唯一的属性值,来确保每个文件css有独立的作用域

 <div am-c="one"></div>

         [am-c="one"]{             
	         width:100px;             
	         height:100px;             
	         background-color: pink;         
         }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值