Vite-优化篇 代码分割单 chunk 打包存在的问题Vite 默认会将 js 打包到一个 index.js 文件中,即单 chunk 打包。这样其实会导致一些问题 包体积会很大,当前没使用的包也被打包进去了,没办法做到按需加载。 缓存复用率很低,单 chunk 打包基本上不会命中缓存,因为只要改动就重新打包,打包后的 url 改变,浏览器会当作新的资源去请求。 自定义拆包配置 manualChunks123 2023-08-07 技术博客 #Vite
Vite-快速入门 Vite 的特性直接放官网上的 、 Vite 为什么快首先要说明的是,Vite 是在开发环境下比较快,原因: 浏览器支持 ESM,Vite 在开发阶段采用 esbuild 依赖预构建,实现了按需加载,而不用整体对项目进行打包。 esbuild 采用 Go 语言开发,Go 是编译型语言,代码直接被编译为原生机器码,不需要像 JavaScript 还要解析成字节码再转成机器码。 依赖预构建Vite 2023-08-04 技术博客 #Vite
React原理之diff流程 前言什么是 diff?我们写的 JSX 文件,会变成 vDom 也就是 React Element 实例,在 render 时进行调和变成 fiber,我们知道 React 采用了双缓存,正在页面中的是 current Fiber,本次渲染的是 workInProgress Fiber,在渲染时会用 workInProgress Fiber 直接替换 current Fiber,而 diff 做的 2023-07-21 技术博客 #React
ahooks源码之useVirtualList 前言对于海量数据渲染起来很耗费性能,并且会造成页面卡顿,下面结合 ahooks 的 useVirtualList 源码,看一下如何实现一个虚拟列表。 结构123456789101112131415161718192021222324252627const useVirtualList = <T = any>(list: T[], options: Options<T>) = 2023-07-12 技术博客 #ahooks
ahooks源码之useRequest 前言我们日常开发 React 项目时,不可避免的要发送很多请求,那如何提炼出一个满足大部分场景,并且又能够优雅使用的 Hooks来提高我们开发的效率呢,接下来我们来通过源码看一下目前应用很广泛的 ahooks 的 useRequest 是如何做的。 useRequest1234567891011121314151617function useRequest<TData, TParams ex 2023-07-11 技术博客 #ahooks
Redux源码之createStore 前言本文会按照 createStore 的源码,由上至下分别从参数、内部定义的变量、getState、subScribe订阅、dispatch派发、replaceReducer 替换 reducer 几个方面进行介绍。关于combineReducers applyMiddleware 的源码在快速入门Redux有进行说明。 参数处理1createStore(reducer, preloadedSt 2023-05-29 技术博客 #Redux
快速入门Redux 前言本文采用例子 + 部分源码 的方式,一步步实现一个简单的 redux。其中还包括 combineReducers、applyMiddleware 等源码解析。 如何改变一个值首先我们来想一个很简单的问题,我们如何改变一个值呢? 一下想到的肯定是定义变量,然后去修改这个变量的值,那如果我想控制这个变量的修改规则,只能按照我的意愿限制他怎么被修改呢? 12345678910111213141516 2023-05-26 技术博客 #Redux
JavaScript 精度问题的原因和解决方案 前置知识点数值精度丢失问题Javascript 是使用二进制进行计算的,并且有长度限制。另外对于整数和小数转换成二进制的形式是不一样的。整数转换成二进制使用的是除二取余,小数转成二进制使用的是将小数乘以二取整 我们通过 toPrecision 方法指定精度来查看我们写的数值对象的字符串表示 123Number(9).toPrecision(30) // '9.00000000000000 2023-03-11 技术博客 #JavaScript
图片懒加载的几种方式 通过 img 标签1234567<div style={{ height: '300px', overflow: 'auto'}}> {items.map(item => ( <div key={item.id}> & 2022-12-21 技术博客 #JavaScript