4-es6的模块化编程

诞生背景
其他都是第三方库,只有es才是官方正宗的,如果es早就制定的话,也不至于现在的这么百花齐放(混乱)的局面了

核心规范
一个文件就是一个模块
export是暴露出模块的公开方法
import是导入

实例代码


index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div class="wrapp">
        <input type="text"></br>
        <input type="text"></br>
        <button>求和</button></br>
        <div class="sumWrap"></div>
    </div>
    <script src="lib/jquery-3.2.1.min.js"></script>
    <script src="bundle.js"></script>
</body>
</html>

app.js

/**
 *模块:
 *功能:入口
 */
import {add} from './tools';
$('button').click(function () {
    var num1=$('input:eq(0)').val();
    var num2=$('input:eq(1)').val();
    var sum=add(num1,num2);
    $('.sumWrap').text(sum)
})

tools.js

/**
 *模块:tools
 *功能:工具
 */
//除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。
import * as log from './log';
var add=function (x,y) {
    var sum= Number(x)+Number(y);
    log.info('tools>add执行结果为:'+sum);
    console.log(log)
    return sum;
}
export {add};

log.js

/**
 *模块:log模块
 *功能:打印
 */
var info=function (str) {
    console.log(str)
};
var warn=function (err) {
    console.warn(str)
};
var err=function (str) {
    console.error(str)
};
export {info,err};

效果预览


作者说明
因为es只是出了规范,具体的是实现还是靠浏览器,目前为止没有一个浏览器支持es6模块开发规范的。所以我用了webpack编译打包了

原文地址:https://www.cnblogs.com/dshvv/p/8391379.html