本文实例讲述了ES6知识点整理之模块化的应用。分享给大家供大家参考,具体如下:
目前浏览器还不能完全支持模块化,需要引入很多编译环境,下面在nodejs中来模拟ES6中的模块化
引用>
<李>环境的安装:$ <代码> npm安装,节省babel-cli babel-preset-node6 代码> 李> <李>运行:$ <代码>。/node_modules。bin/babel-node。js -预设node6。/your_script.js 代码> 李> <李>添加。babelrc文件,编辑如下李>
{ “预设”:( “node6” ] } >之前添加了这个文件,无需在运行时添加预设参数
<李>参考链接:https://stackoverflow.com/questions/33604470/unexpected-token-import-in-nodejs5-and-babel 李>
test1模块:
//写法1 出口var="我";//写法2 var b=b“我”; 出口{b};//写法3 var c=c“我”; 出口{c, d}//将c重名为d,外部也同样需要进口d >之前指数模块:
进口{a, b, d}”。/test1 '; console.log(一个);//我是一个 console.log (b);//我是b console.log (d);//我是c >之前
test2模块:
//异步写法 var m=拔襪”; 出口{m}; setTimeout(()=祝辞{ m=拔襪m”; },1000); >之前指数模块
进口{m}”。/test2 '; console.log (m);//我m setTimeout(()=祝辞{ console.log (m);//我是毫米 },1500); >之前
test3模块
var=1111, B=2222, C=3333; var M=癕”; 出口默认M; B出口{A1, B1, C C1}; >之前指数模块:
进口M, {A1, B1, C1}”。/多'; console.log (A1);//1111 console.log (B1);//2222 console.log (C1);//3333 console.log (M);//米 >之前
用户模块:
出口类用户{ 构造函数(名字){ this.name=名称; } 得到uname () { 返回this.name; } 设置uname(名字){ this.name=名称; } } >之前指数模块:
进口{User}”。/用户”; var=新用户(“(”); console.log (user.uname);//( 用户。uname=袄蚶颉? console.log (user.uname);//莉莉 >之前
func模块
导出函数日志(str) { console.log (str); } >之前指数模块
日志(“我日志”);//我的日志 >之前
rename模块:
出口默认“重命名”; >之前指数模块:
进口{默认为nr}”。/重命名”; console.log (nr);//重命名 >之前
结合模块:
出口var=1; 出口默认111; >之前方式1:
指数模块:
进口{违约作为com,昏迷}”。/com”; console.log (com);//111 console.log(昏迷);//1 >之前方式2:
指数模块:
进口t,{因为昏迷}”。/com”; console.log (t);//111备注这里t可以以任何名称命名 console.log(昏迷);//1 >之前
<李>定义出口时必须在顶层定义,其他地方是不能定义的,如函数内部李> <李>违约后面不能带var导出,如:<代码>出口默认var=扒恰泵?代码>这样是不对的李> <李>不要进口* <代码> 代码>导出全部模块,这样非常不好,不利于优化李> <李> <代码>{}代码>导入的不是默认模块,默认模块不需要带<代码>{}代码> 李> <李>通过违约导出的不会再次被修改,如果默认导出的是一个数字变量,即使在其他地方修改了,它也不会被修改,保持原值不变李
ES6知识点整理之模块化的应用详解