前端新手,想问问关于 import 命令执行的效率问题?

2023-08-30 08:42:20 +08:00
 kolibreathV

之前没有写过前端,现在临时开始学习并且编码。简单学习了一下 Vue ,看了下项目代码和 vue.js 源码心中有些疑惑. 首先我先抛出一下我现在的理解,如果理解错误请大家指正下:

  1. vue.js 是一个很大的立刻执行函数,最后 return Vue 的构造函数。在vue._init()函数中会将 Vue 函数放到 window 上,这样全局都可以使用
  2. import 命令每次都会执行对应模块的代码

我看到在项目的很多地方都会 import Vue ,然后做Vue.use()等操作,那这样会不会因为 import 反复执行 vue.js?

3506 次点击
所在节点    程序员
32 条回复
ivslyyy
2023-08-30 11:58:40 +08:00
Singleton ?
fason1995
2023-08-30 14:07:51 +08:00
@mdn MDN 列举的形式是真的多
Mexion
2023-08-30 14:12:38 +08:00
你当规范设计者是傻子啊,这种问题难道没考虑过吗,如果有问题还需要你来提?只能说别太操心
mxT52CRuqR6o5
2023-08-30 14:14:12 +08:00
模块是单例的,这么说你明白吗
n18255447846
2023-08-30 14:37:01 +08:00
不会。打包工具会基于 ast 生成依赖树
n18255447846
2023-08-30 14:39:37 +08:00
@libasten devtools->Performance 里录制一段时间,看什么地方耗时
iOCZ
2023-08-30 14:42:39 +08:00
import 是静态编译,只会引入用到的东西。require 是动态加载,会做 cache 。
kolibreathV
2023-08-30 17:00:36 +08:00
@Mexion 😊
AsuorZ
2023-08-30 17:11:05 +08:00
对比下 require
ipcjs
2023-08-30 21:07:25 +08:00
建议丢掉 vue ,写 react

Vue3 这玩意写的我头痛🙃
DOLLOR
2023-08-30 22:23:39 +08:00
通常来说,同一个文件无论被 import 几次,里面的代码实际上只执行一次。
并且,所有地方 import 到的模块,都是同一个实例的引用。
这意味着,如果你 export 一个变量,然后修改它,其他所有模块都能看到这个变量的变化。
7inFen
2023-08-31 19:03:49 +08:00
import 语法浏览器不认,最后实际在浏览器环境运行的代码会被打包工具如 webpack 优化,前端的打包工具做了很多很多很多的工作。
另外 import 仅在编译时运行,require 是随代码动态运行的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/969362

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX