前端模块化

CommonJS

含义JavaScript模块化规范

核心思想:通过require方法来同步加载依赖的模块,通过module.exports导出需要暴露的接口

// 导入
const moduleA = require('./moduleA');

// 导出
module.exports = moduleA.someFunc;

代码无法直接运行在浏览器环境下,必须通过工具转换成标准的ES5缺点

AMD

含义JavaScript模块化规范

不同点:异步加载依赖模块

用处:用于解决针对浏览器环境的模块化问题

/ 定义一个模块
define([
  'require',
  'dependency'
], function(require, factory) {
  'use strict';
  
});

// 导入和使用

require()

可在不转换代码的情况下直接在浏览器中运行优点

  • 可异步加载依赖
  • 可并行加载多个依赖
  • 代码可运行在浏览器环境和Node.Js环境下

缺点

JavaScript运行环境没有原生支持AMD,需要项导入实现了AMD的库后才能正常使用

ES6模块化

它将逐渐取代CommonJs和AMD规范


样式文件中的模块化//
导入 import { readFile } from 'fs'; // 导出 export default

以SCSS为例

// util.scss文件

// 定义样式片段

@mixin center {
  position: absoluts;
  left: 50%;
  top: 50%;
}


// 导入和使用util.scss中定义的样式片段
@import 'util';
#box{
  @include center
}

更多内容可访问我的博客:http://webfly.com.cn

posted @ 2018-09-03 23:12 BluesQian 阅读(...) 评论(...) 编辑 收藏