import和require的区别

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语法的简写;

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页