微信小程序引入其它js的方法,使用require和import有什么区别?

比如我的md5加密js放在了utils文件夹下,页面的js需要引入md5的时候,使用require引入和import引入有什么区别?我看官方文档里是说用require来引入,我看别人小程序代码,引入js的时候有的时候也用import来引入。

阅读 23.4k
3 个回答

import和require的区别
node编程中最重要的思想就是模块化,import和require都是被模块化所使用。

遵循规范
require 是 AMD规范引入方式
import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法

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

本质
require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

requireimport没有什么区别,这是两种js模块化规范而已,如果你的小程序用到了babel编译,两种写法均可,如果没有,那就用require语句,这是nodejs原生支持的

js模块化

1.ES2015 import 语句

import App from './App';

import 'moment';

2.CommonJS require() 语句(nodejs支持)

const App = require('./App');

require('moment')

3.AMD define 和 require 语句(requirejs支持)
requirejs是一个早些时候实现js模块化的库,现在基本没怎么用了,大概是这种写法吧

require(['jquery'], function(Lib){
    // do sth
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题