使用import替代require调用函数及复用变量的最佳实践(附示例转换)
使用import替代require的最佳实践及代码转换示例
核心最佳实践
- 遵循ES模块规范,将所有
import语句放在文件顶部,避免在代码逻辑块中动态导入(除非有按需加载的明确需求) - 区分模块的默认导出和命名导出:默认导出用
import xxx from 'module',命名导出用import { xxx } from 'module' - 对于需要直接调用的模块(如express这类函数式模块),先导入模块本体,再执行调用,不要合并成一行
- 对于模块的静态方法(如http.createServer),先导入模块,再通过模块访问其方法,提升代码可读性
示例代码转换
原require写法:
const app = require('express')(); const server = require('http').createServer(app); const io = require('socket.io')(server);
对应的ES模块import写法:
import express from 'express'; import http from 'http'; import { Server } from 'socket.io'; const app = express(); const server = http.createServer(app); const io = new Server(server);
说明
- express是默认导出的函数,所以直接导入后调用
express()即可 - http模块导出的是包含
createServer方法的对象,导入后直接通过http.createServer调用 - socket.io在ES模块中以命名导出的方式提供
Server类,因此需要用{ Server }导入,再通过new Server(server)实例化
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

