Jude's blog

归档 · 2022

首页

关于

归档

vuex

100、vuex的缺点及从0写一个vuex的思路

1、用过 module,项目规模变大之后,单独一个 store 对象会过于庞大臃肿,通过模块方式可以拆分开来便于维护 2、可以按之前规则单独编写子模块代码,然后在主文件中通过modules选项组织起来:createStore({modules:{...}})。 3、不过使用时要注意访问子模块状态时需要加上注册时模块名:store.state.a.xxx,但同时getters、mutations和actions又在全局空间中,使用方式和之前一样。如果要做到完全拆分,需要在子模块加上namespace选项,此时再访问它们就要加上命名空间前缀。 很显然,模块的方式可以拆分代码,但是缺点也很明显,就是使用起来比较繁琐复杂,容易出错。而且类型系统支持很差,不能给我们带来帮助。pinia 显然在这方面有了很大改进,..

更多
js

99、script标签写export为什么会报错?

一、脚本和模块​ JavaScript 有 2 种源文件,一种叫做脚本,一种叫做模块。这个区分是在 ES6 引入了模块机制开始的,在 ES5 和之前版本中,就只有一种源文件格式,即脚本。 ​ 脚本是可以由浏览器或者 node 环境引入执行的,而模块智能有 JavaScript 代码用 import 引入执行。 ​ 脚本具有主动性的 JavaScript 代码段,是控制宿主完成一定任务的代码;而模块是被动行的 JavaScript 代码段,是等待被调用的库。 ​ 实际上,模块和脚本之间的区别仅仅在于是否包含import和export。 ​ 脚本是一种兼容之前的版本的定义,在这个模式下,没有 import 就不需要处理加载.js 文件问题。 ​ 现代浏览器可以支持用 script 标签引入模块或者脚本,如果..

更多
promise

97、promise代码为什么比setTimeout先执行?

​ 当拿到一段 JavaScript 代码时,浏览器或者 Node 环境首先要做的就是;传递给 JavaScript 引擎,并且要求它去执行。然而,执行 JavaScript 并非一锤子买卖,宿主环境当遇到一些事件时,会继续把一段代码传递给 JavaScript 引擎去执行,此外,我们可能还会提供 API 给 JavaScript 引擎,比如 setTimeout 这样的 API,它会允许 JavaScript 在特定的时机执行。所以,我们首先应该形成一个感性的认知:一个 JavaScript 引擎会常驻于内存中,它等待着我们(宿主)把 JavaScript 代码或者函数传递给它执行。

更多
12