import 与 require 使用区别(以及路由懒加载)

这里指的是JS 中的使用, 虽然其他的语言也有引入的,(如Python)

首先: 两者 的区别就是 :

  • import 是 ES6 中利用模块化,而使用的
  • 而 require ,早一些,在node 中ADM 的引入方式;

两者的功能是相同的, 只是使用方式上有一些细微的差别,需要注意下;

require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量

import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require


require / exports
遵循 CommonJS/AMD,只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。
用法只有以下三种简单的写法:

  • 注意: 多了一个s

exports.fs = fs
module.exports = fs
module.exports={
	xx,
	aa,
	
}
/**
引入文件时,写好路径
*/
const fs = require('fs')

import / export:

遵循 ES6 规范,支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。
写法就比较多种多样:(有的是整个文件的引入,有个是单个方法的引入)

使用了导出使用 export default ,则可以在引入时自定义名字,但是每个文件中只能有一个export default, 如:vue中script的export default

故如果在写入方法的文件中使用 export{ }, 但是import 的时候名字也必须对应,
不能直接自命名(自命名可以使用 as 的语法进行命名)


export default fs
export const fs
export function readFile
export {readFile, read}
export * from 'fs'

/*****/

import fs from 'fs'
import {default as fs} from 'fs'
import * as fs from 'fs'
import {readFile} from 'fs'
import {readFile as read} from 'fs'
import fs, {readFile} from 'fs'



关于这两种方式的路由懒加载

使用require与import


const Foo = resolve =>{
 require.ensure(['./Foo.vue',() => {
   resolve(require('./Foo.vue'))
 }])
}

/*******/等价于

const Foo = resolve => require(['./Foo.vue'], resolve);


import的时候的路由懒加载(推荐)

更加的简介便利


const Foo = () =>import('./Foo.vue');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值