前端模块化
2019-07-25 10:25:41 0 举报
AI智能生成
前端模块化整理
作者其他创作
大纲/内容
CMD
实现
浏览器端
sea.js
说明
整合了common.js 和 amd的特点
模块使用时再声明
模块的加载是异步的,模块使用时才会加载执行
基本语法
引入
同步
var fs = require('fs');
异步
定义&暴露模块
无依赖
有依赖
es Modules
使用Bable将es6转为es5
使用Browserify进行浏览器端编译
服务器端
正常使用
说明
是es6的模块引入方法,依赖需要提前声明好 import在顶层
import '模块名'
import a from '模块名' 将该模块引入为a
输出
export default 默认输出模块
export 输出模块
跟commonJs的区别
common 运行时加载
因为 CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成
es6 编译时输出接口
ES6 模块是动态引用,并且不会缓存值,模块里面的变量绑定其所在的模块。
es6输出的是一个值的引用
common 输出的是一个值的拷贝
模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
前端模块化
AMD
require.js
依赖必须提前声明好
模块加载异步,指定回调函数
span style=\"font-size: inherit;\
define(function(){ return 模块})
commonJs
node
webpack
Browserify
模块加载同步,即资源加载完再执行
每个文件都可以是一个模块
模块加载是运行时同步加载
模块加载是提前编译打包处理
第三方模块
自定义模块
var fs1 = require('./fs');
模块引入说明
读入并执行一个JavaScript文件,然后返回该模块的exports对象。如果没有发现指定模块,会报错
module.exports = 模块或者模块对象集合
exports.value = 模块名
输出说明
module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口
0 条评论
下一页