在JavaScript中使用ES6模块导出简单的变量

Using ES6 modules in JavaScript to export simple variables

本文关键字:简单 变量 模块 ES6 JavaScript      更新时间:2023-09-26

我在JavaScript中定义pageId = 3在一个文件和socket = io()在另一个文件,我想在其他文件中使用这些变量。

我想我应该在ES6中使用模块,但我不确定如何做到这一点。

现在它确实有效,因为我在文件中定义了两个变量,这些变量是在我实际使用变量的文件之前加载的,但它似乎是糟糕的代码,我的代码IDE编辑器给了我一个警告,变量没有定义,因为它不能在当前文件中看到它。

我读了一些教程,但我仍然不明白如何在一个文件中定义一个变量并将其导出到其他文件。

只是

const pageId = 3;
const socket = io(); // which is defined in file 'socket.io-1.4.5.js' which is loaded before this file
module.exports = { pageId, socket };

,然后用

将其导入到其他文件中
const pageId = require('pageId');
const socket = require('socket');
socket.on('connect', ...);
(...)

甚至不加载这些文件到任何地方?

嗯,我知道这听起来很傻(特别是pageId的例子),但有些情况下,甚至需要

假设你正在构建一个包含数百个模块的物理/数学库。这很有道理。只在一个地方声明数学常数只在需要的时候加载

可能一个一个地导出它们这不是最好的解决方案,但这是一个有效的解决方案

对于io对象。这对我来说也是有意义的声明它,改变一些配置值,然后,重新导出它,用新的配置,到处需要而不是创建一个新的,到处重新配置它(假设这种行为有效,我怀疑的东西)

无论如何,你的示例语法是不正确的…您不能以这种方式"要求"单个变量或函数。假设你的第一个文件名为"strange.js",应该这样做:

const pageId = require('strange').pageId
const socket = require('strange').socket;