zoukankan      html  css  js  c++  java
  • import与require的区别

     require 和 import,都是为了模块化开发,

    遵循规范
    –require 是Commonjs的规范,node应用是由模块组成的,遵从commonjs的规范。
    –import是es6的一个语法标准,如果要兼容浏览器的话必须通过babel将es6转码为es5再执行

    调用时间
    –require是运行时调用,所以require理论上可以运用在代码的任何地方
    –import是编译时调用,所以必须放在文件开头

    核心

     import导出的对象必须与模块中的值一一对应,换一种说法就是导出的对象与整个模块进行结构赋值。对的,你没有听错。抓住重点,解构赋值

     require在导出的文件中定义module.export,导出的对象的类型不予限定(可以是任何类型,字符串,变量,对象,方法),在引入的文件中调用require()方法引入对象即可

    require 是赋值过程并且是运行时才执行, import 是解构过程并且是编译时执行。require可以理解为一个全局方法,所以它甚至可以进行下面这样的骚操作,是一个方法就意味着可以在任何地方执行。而import必须写在文件的顶部。

    • require的性能相对于import稍低,因为require是在运行时才引入模块并且还赋值给某个变量,而import只需要依据import中的接口在编译时引入指定模块所以性能稍高

    • 在commom.js 中module.export 之后 导出的值就不能再变化,但是在es6的export中是可以的。
    var a = 6
    export default {a}
    a = 7  //在es6中的export可以
    var a = 6
    module.export = a
    a = 7   //在common.js中,这样是错误的
  • 相关阅读:
    [solution]xdebug正确配置,但不显示错误信息
    SIGCHLD信号
    sigsuspend
    信号引起的竞态
    智力面试题
    可重入和不可重入
    信号—信号处理函数(捕捉)
    PCB信号集
    信号产生的原因:
    信号初步
  • 原文地址:https://www.cnblogs.com/aidixie/p/12263256.html
Copyright © 2011-2022 走看看