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

253 天前
 kolibreathV

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

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

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

3273 次点击
所在节点    程序员
32 条回复
dream4ever
253 天前
个人提一点离题的意见,新手没必要看源码,不如先把库/框架用熟,把开发效率提上来,后面有闲工夫了再研究源码啥的。
linshuizhaoying
253 天前
新手别问效率 前端谈这些基本没啥用,你要谈的是开发效率 如何更快出货
Imindzzz
253 天前
先学习下 node 模块和 webpack
nevermoreluo
253 天前
import 不确定,reqire 是有 cache 的,类似脚本语言 python ,lua 等包导入都有导入模块的全局缓存
第一次缓存 miss -> path finding -> load
第二次就是缓存命中直接返回了
enchilada2020
253 天前
不会 只有一次
touchmii
253 天前
js 项目编译后 import 就会被实际用到的代码替换,你这种你说的这种只是 debug 下情况,不用瞎操心。
libasten
253 天前
搭车问一下,同是 vue 项目,有两三个比较大的 json 数据文件,大约 10M 左右,需要在 vue 页面组件中使用,都通过 import 方式引入到组件中。
现在这个组件特别卡顿,是这几个 import 文件太大导致的吗?
一般有什么优化思路呢?
lizhenda
253 天前
@libasten 改成 http 请求
eatgrass
253 天前
@libasten
异步加载
拆分 chunk
本地缓存
xujinkai
253 天前
import 只在第一次调用时执行一遍文件,也就是 export 出来的变量天生是单例的。
ljsh093
253 天前
打包工具会解决重复导入的问题
libasten
253 天前
@lizhenda http 请求会解决 vue 组件上控件操控的卡顿? import 和 http 的区别是什么?我理解的都要缓存到本地?但是 import 是“注入”到对象属性里面了?
mdn
253 天前
@libasten 动态 import()
v135ex
253 天前
@libasten 也可以使用 service worker
mdn
253 天前
参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/import

ES6 标准中,import 引入的模块是地址引用
Outclass
253 天前
过早优化是万恶之源。[手动滑稽]
mdn
253 天前
1. import 命令是编译阶段执行的,在代码运行之前
2. import 语句是 Singleton 模式
zhangxingliang
253 天前
@libasten 1. dom 元素过多卡顿 2. json 转成的对象太大遍历卡顿
liuzhifei
253 天前
我的前端编程工作经历中,最坑人的就是考虑性能。
只有当你实际操作觉得卡顿,再去考虑性能,不然没意义。
react 性能不如 vue ,但是比 vue 火太多了。
react 源码中很多都不是性能最优的代码
4771314
253 天前
@libasten 10M 的 json ,你用浏览器或者 vs code 打开看下卡不卡?
单纯就是文件太大了

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

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

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

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

© 2021 V2EX