多个文件 import 的相同模块里的对象

多个文件 import 的相同模块里的对象,是否永远都是同一个对象?

在store的index.js中

import vue from 'vue'

import Vuex from 'vuex'

并配置有关对象

然后再app.vue中配置vm

在不同的文件中 import一个vue对象,在任何情况下,所有的文件是否得到的都为同一个对象,也就是单例的?对vue的修改配置是否都在同一个上

在学习vue中,想到这个问题,因为没有es6,webpack等基础就直接学,有些疑惑,在网上搜索了一下

得到如下解答:

可以确定node和webpack实现的模块都是单例,

无论是NodeJS和Webpack,默认的资源Index都是文件的绝对路径。

所以只要绝对路径相同,文件就应该是只被加载一次,第二次加载就是从cache中获取

第一次加载的时候,会执行你的代码,并且获取该Module Export的内容。

然后,把获取到的内容直接放入Module Cache。

这样,在下次加载的时候,就不会再执行你的JS,而是直接返回Module Cache中的代码,而非再执行一遍你的代码。

因为不会再执行一遍,你得到的永远是同一个对象。

测试:在两个不同的Module里面require它。然后输出看看是不是同一个时间。

导入两者

moudule1

moudule2

输出:

结果:

相关推荐
该用户已不存在11 分钟前
这6个网站一旦知道就离不开了
前端·后端·github
Ai行者心易15 分钟前
10天!前端用coze,后端用Trae IDE+Claude Code从0开始构建到平台上线
前端·后端
东东23323 分钟前
前端开发中如何取消Promise操作
前端·javascript·promise
掘金安东尼28 分钟前
官方:什么是 Vite+?
前端·javascript·vue.js
柒崽29 分钟前
ios移动端浏览器,vh高度和页面实际高度不匹配的解决方案
前端
渣哥1 小时前
你以为 Bean 只是 new 出来?Spring BeanFactory 背后的秘密让人惊讶
javascript·后端·面试
烛阴1 小时前
为什么游戏开发者都爱 Lua?零基础快速上手指南
前端·lua
大猫会长1 小时前
tailwindcss出现could not determine executable to run
前端·tailwindcss
Moonbit1 小时前
MoonBit Pearls Vol.10:prettyprinter:使用函数组合解决结构化数据打印问题
前端·后端·程序员
533_1 小时前
[css] border 渐变
前端·css