前端面试回顾
趁现在有时间稍微总结一下面试的一些问题 one Promise 为什么可以链式调用 如果在.then 返回一个值,这个新的 Promise 状态是什么 如果想要阻止链式调用,让后续的.then 一直暂停状态有哪些方法 all 和 allSettled 区别 设计一个调度程序,可以让 Promise ...
趁现在有时间稍微总结一下面试的一些问题 one Promise 为什么可以链式调用 如果在.then 返回一个值,这个新的 Promise 状态是什么 如果想要阻止链式调用,让后续的.then 一直暂停状态有哪些方法 all 和 allSettled 区别 设计一个调度程序,可以让 Promise ...
在之前用 React 写一些小项目的时候有时也需要用到状态管理,但是用 Redux 有一种“大材小用”感觉,就在寻找有没有很精巧的实现,最好是响应式的,最后搜索了一番在 Github 发现了两个满足我需求的库: valtio resso 结合官方给出的文档示例还是最终在项目用了 resso,所以就有...
image.png 经常在使用 koa 的时候,通过 .use 的形式来注册各种中间件,例如下面一段代码 这里会输出 1,3,4,2,下面就来翻看一下源码看看这个中间件实现的具体原理。 在看具体代码之前,先温习一下,使用 koa 的最小运行代码是什么样的 可以看到,最后通过 listen 方法来启动...
对于 Array 的一些操作,例如 reverse、sort 等都会改变原数组,ES2023 对以下这些方法进行了拓展,提供了相同功能但是返回新副本的方法。 toReversed toSorted toSpliced with 下面进行一个详细的介绍。 toReversed reverse:反转数组...
前言 模板引擎这个应该都不陌生,最早可以追溯到前后端还没分离的时候,后端为了循环、判断值之类简化编写流程而使用的,毕竟手动拼接字符串之类的也太麻烦了。 下面是 php easytpl 的一个示例,从这个可以看到模板引擎的基本用途。 上面这对代码会输出 回到 JavaScript,随着职能的不断提升前...
这篇文章的思路来源为 ahooks,因为 react 已经有相对应的实现了,所以这里主要介绍 vue 下如何实现一个 hook 的发布订阅。 假设有一个需求,当价格发生改变的时候刷新列表,在 vue 中很自然而然想到调用 watch 观察,但是这样的调用还是有点繁琐。例如下面一段伪代码 但是仔细观察...
得益于 pnpm 软链接实现现在 monorepo 项目已经十分成熟了,不过在写项目时候还是遇到很多痛点,例如: 如果我有多个 packages 项目并且使用 TypeScript,那么我肯定希望是写的都是 ts,在需要调用的时候通过工具来完成这一过程的转译,不过在实际开发中可能使用了 vite 这...
image-20220904141910530 写这篇文章是因为最近在写一个管理异步队列的库,但是有一些类型推导不太好写,例如上面的期待是 后面查询了一些文档和资料就有了这篇文章。 收窄方式 在具体讲解上面如何实现之前,先介绍一下几种收窄对象的方式。 typeof 类型守卫 如果在 padLeft ...
nginx(读音:engine-x,音标:\[ˈendʒɪnks'])是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。 日常中最经常听到用到的就是反向代理以及负载均衡,那么什么是反向代理呢? 什么是反向代理? reverse-proxy 反向代理(Reverse P...
这篇文章的由来是因为项目上的一个神奇问题,之前觉得写重复的创建项目太繁琐就封装了一个创建模板文件 CLI ,当时心想自己真是一个上进的小伙子。 后来某天 xx 领导对我说有一个新项目交给我做,当时心想终于可以大展拳脚试试新的工具了,一顿操作后项目完成了,不过在推送 GitLab 时发现图片竟然无法预...
最近开发项目的时候遇到一个神奇的 bug,在回滚了无数次之后终于定位到了问题,就是 yarn.lock 引起的,当时升级相关依赖版本不小心把 yanr.lock 文件给干掉了,导致依赖引用的模块有问题。 不过这也引起了我的思考为什么 yarn 要有一个 yarn.lock 文件呢?或者说为什么现代的...
home 如题这是一个系列文章不过更新起来可能很缓慢,从 vite 出来之际我就开始关注,目前 npm 的包下载量为 1,589,416+,可以看到已经非常稳定了。而且开发十分香,完全就是开箱即用,下面就来探讨一下 vite 是如何将项目创建到目录中的。 使用方式 目前比较火的管理代码形式为 mon...
新的一年已经开始,之前在知乎刷到一篇新年展望贴 2022 前端技术领域会有哪些新的变化?,里面的小伙伴回答了很多,这里稍微归纳一下回答: Monorepo TypeScript ESBuild ESM 化 pnpm ... 上面的回答中 TypeScript 提及的次数很多,原因很是随着项目复杂程度...