zoukankan      html  css  js  c++  java
  • 关于require()和export引入依赖的区别

    原文链接:https://blog.csdn.net/liya_nan/article/details/81141244

    require 和 import,都是为了JS模块化使用。最近项目中,因为多人协同开发,出现了一个项目中同时使用了require 和 import 引入依赖的情况。正常情况下,一个项目中最好是对引入方式做一个规范。下面我们就来看一下require 和 import的区别:

    一.require
      require是Commonjs的规范,node应用是由模块组成的,遵从commonjs的规范。用法:

      //a.js
    
    function test (args) {
    // body...
    console.log(args);    
    }
    
    module.exports = {
    test
    };
    
    //b.js
    
    let { test } = require('./a.js');
    
    test('this is a test.');

        require的核心概念:在导出的文件中定义module.exports,导出的对象类型不予限定(可为任意类型)。在导入的文件中使用require()引入即可使用。本质上,是将要导出的对象,赋值给module这个对象的exports属性,在其他文件中通过require这个方法来访问exports这个属性。上面b.js中,require(./a.js) = exports 这个对象,然后使用es6取值方式从exports对象中取出test的值。

    二.import
    import是es6为js模块化提出的新的语法,import (导入)要与export(导出)结合使用。用法:

    //a.js:
    
    export function test (args) {
    // body...
    console.log(args);    
    }
    
    // 默认导出模块,一个文件中只能定义一个
    export default function() {...};
    
    export const name = "lyn";
    //b.js:
    
    // _代表引入的export default的内容
    import _, { test, name } from './a.js';
    
    test(`my name is ${name}`);

    三、commonjs模块与ES6模块的区别
        1.commonjs输出的,是一个值的拷贝,而es6输出的是值的引用;

        2.commonjs是运行时加载,es6是编译时输出接口;
    ---------------------
    作者:liya_nan
    来源:CSDN
    原文:https://blog.csdn.net/liya_nan/article/details/81141244
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    eclipse运行纯servlet程序
    VS中lib和dll
    eclipse部署web项目至本地的tomcat但在webapps中找不到
    【2018.07.28】(字符串/回文串)学习Manacher算法小记
    【2018.07.26】建立博客~
    【2018.07.27】(字符串/找相同)学习KMP算法小记
    [转]数据库范式那些事
    [转]Windows平台下的多线程编程
    mondrian schema学习(1)
    [转]SQL查询入门
  • 原文地址:https://www.cnblogs.com/ressiry/p/10631825.html
Copyright © 2011-2022 走看看