请问在工程化项目中,不同组件内导入同一个模块,得到的导出对象是同一个对象吗?-灵析社区

办公室高手

如题,新增一个模块eventBus,例如: `export default new Vue()` 现在我们有2个组件,分别是a.vue和b.vue,分别导入上面模块 `import eventBus from './eventBus.js'` 请问得到的eventBus对象是同一个吗?还是不同的2个对象?

阅读量:398

点赞量:19

问AI
导入模块时执行的代码只会执行一次,并且被导出的对象实例会被缓存起来供后续导入使用。因此,每次导入相同的模块时,都会得到同一个被导出的对象实例 例如 : 文件 : axios.ts export const axios = Axios.create({ // baseURL: }); console.log('执行次数'); 无论被多少文件 import 只会被执行一次; 你如果不觉得不正确 可以做个测试; example : Example.ts class Example { time = Math.random() * 10; } export default new Example(); 然后用其他文件导入Example.ts 然后打印 time是否是固定值即可。