继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

import和require的区别

萌萌小温柔
关注TA
已关注
手记 306
粉丝 56
获赞 401

import导入模块,import的语法跟require不同,而且import必须放在文件的最开始,且前面不允许有其他的逻辑代码;

写个简单js文件,假设名字为lib.js.假设内容如下:

export const sqrt=Math.sqrt;
export function square (x){
    return x*x
};
export function diag (x,y){
    return sqrt( square(x) + square (y) );
}

在其他地方对lib中定义的属性和方法进行引用,引用方法有两种,import和require;

方法一:import { square ,diag} from 'lib';

方法二:import * as lib from 'lib';

设置默认的导出信息,需要lib.js中定义export default{},default后面可以接一个参数,也可以接一个数组;

//module1.js
export default 123;
//module2.js
const D=123;
export {D as default};
node的module遵循Common.js规范,require.js遵循AMD,seaJS遵循CMD;
as关键字(主要可以解决重名问题)
as简单的说就是取一个别名,export中可以用,import中其实也可以用;
//a.js
var a=function(){},export { a as fun};
//b.js
import { fun as a} from './a';a()

default关键字

在export的时候,可能会用到default,说白了,其实是别名的语法糖;

例如:export default function(){};

//等效于:function a(){};export {a as default};
在import的时候,可以这样用;
import a from './d';
//等效于,下面简写
import {default as a} from './d'

总结:这种语法糖的好处就是import的时候,可以省去花括号{},简单的说,如果import的时候,你发现某个变量没有花括号括起来(没有*号),就是as语法的简写;

原文出处

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP