require与 import

作者: 天涯笑笑生 | 来源:发表于2018-07-26 14:16 被阅读0次

一、exports...require...

  • CommonJS 模块
  • 由Nodejs 提供,每个文件都被视作独立的模块
  • 模块被 Node.js 包装在一个函数中,因此模块内的本地变量是私有的
  • module.exports属性可以被赋予一个新的值(例如函数或对象)
  • 想要获得调用 require() 时加载的确切的文件名,使用 require.resolve() 函数
  • exports 输出的是值的缓存,不存在动态更新
    util.js file
const value = 'util'

exports.fun1 = (v) => 'fun1-'+'v:'+v+'-value:'+value
exports.fun2 = (v) => 'fun2-'+'v:'+v+'-value:'+value

people.js file

// 赋值给 `exports` 不会修改模块,必须使用 `module.exports`

module.exports = class People {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    toString() {
        return 'name:'+this.name+' age:'+this.age;
    }
}

Test5.js file

//nodejs require 测试

const util = require('./util');
const People = require('./people');

console.log(util.fun1('parameter'))
console.log(util.fun1('parameter'))

const people = new People('Jony', 28);

console.log(people.toString());
require 测试结果

二、export...import...

  • ES6 模块
//按需导入
import {
    Switch,
    HashRouter as Router,
    Route
} from 'react-router-dom';
  • 如上例,称为“编译时加载”或者静态加载,效率要比 CommonJS 模块高
  • export对外提供接口,阮一峰举例
// 报错
export 1;

// 报错
var m = 1;
export m;

// 写法一
export var m = 1;

// 写法二
var m = 1;
export {m};

// 写法三
var n = 1;
export {n as m};

// 报错
function f() {}
export f;

// 正确
export function f() {};

// 正确
function f() {}
export {f};

  • export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。
export var foo = 'bar';
setTimeout(() => foo = 'baz', 500);

//上面代码输出变量foo,值为bar,500 毫秒之后变成baz
  • export default 为模块指定默认输出,import 后面可以指定任意名字

相关文章

  • require与 import

    一、exports...require... CommonJS 模块 由Nodejs 提供,每个文件都被视作独立的...

  • require 与 export 、 import

    require require是common.js的规范方法,在nodeJs中直接支持,在浏览器中需先通过webp...

  • require与import区别

    首先主要体现在他们的用法上, require是CommonJS的语法,它的模块是对象,导入时实际倒入一个对象,然后...

  • require OR import

    以前在CommonJS中,我们用module.exports和require来导出和导入模块,而到了ES6却变成了...

  • require and import

    两者用法: node 的 commonJS 规范:require 引入模块 require('./xxx/xxx....

  • import,require

    在es6之前js一直没有自己的模块语法,为了解决这种尴尬就有了require.js的出现。在es6发布之后js又引...

  • require与imoprt的区别

    require与imoprt的区别 require遵循的是commonjs规范,import遵循的是es6modu...

  • require,import ,export default,m

    module.exports和exports区别 import和require的区别 import和require...

  • Vue 在data中引入图片路径

    require import

  • moment.js

    引入moment //require 方式varmoment=require('moment');//import...

网友评论

    本文标题:require与 import

    本文链接:https://www.haomeiwen.com/subject/divvmftx.html