- 博客(378)
- 收藏
- 关注
原创 内网环境中安装 Python 项目运行所需的依赖
这些方法可以帮助你在内网环境中顺利安装 Python 项目所需的依赖。选择哪种方法取决于具体的网络环境和项目需求。这会在本地的 8080 端口启动一个 PyPI 镜像服务器。替换为实际的镜像服务器 IP 地址。此命令会将所有依赖包下载到指定的。选项表示不使用 PyPI 索引,选项指定本地包的搜索路径。<镜像服务器 IP>
2025-03-14 14:06:33
324
原创 plugin, loader
stylelint-webpack-plugin:在构建过程中使用Stylelint 进行 CSS/SCSS 代码检查。mini-css-extract-plugin:提取 CSS 代码到单独的文件,而不是内联到JavaScript代码中。css-loader:解析 CSS 文件,处理CSS 中的依赖关系,并将 CSS 转换为 JS 模块。optimize-css-assets-webpack-plugin:压缩 CSS 代码。ts-loader:将TypeScript代码转换为JavaScript代码。
2025-03-12 01:24:16
153
原创 React 性能优化
4.使用虚拟化:对于大型列表或表格等组件,可以使用虚拟化技术(如react-window 或 reactvirtualized)来仅渲染可见区域内的元素,从而提高性能。这对于纯函数组件和大型组件特别有用。避免不必要的渲染:在函数组件中,可以使用 useCallback和 useMemo来避免不必要的函数创建和计算,使用 useRef 保持函数应用的唯一性。8.使用 React.StrictMode:在开发环境中,可以使用 React.StrictMode 组件来检测潜在的问题和不安全的使用。
2025-03-11 22:44:01
494
原创 Reconciler, Commit
在 React 的渲染流程中,Reconciler(协调器)阶段和 Commit(提交)阶段是两个关键的步骤,下面为你详细介绍这两个阶段的具体工作内容。
2025-03-10 09:44:43
672
原创 next学习笔记
npm run dev 运行, npm run build打包 打包后会生成.next文件夹,npx create-next-app@latest创建一个next项目。npm start会本地运行打包后的包。
2025-03-09 15:32:51
208
原创 watch和computed
watch :是一个对象,键是要监听的数据属性名,值是对应的回调函数,也可以是包含 handler 、 deep 、 immediate 等选项的对象。- computed :是一个对象,键是计算属性的名称,值是一个函数,该函数返回计算后的值,也可以使用 get 和 set 方法来定义可读写的计算属性。- watch :用于观察特定数据的变化,并在数据变化时执行相应的回调函数,常用于在数据变化时进行异步操作、复杂的业务逻辑处理或执行副作用。
2025-03-03 15:36:06
195
原创 在 Vue 中使用 keep-alive 组件包裹动态组件时,部分生命周期钩子函数的执行情况会发生变化。keep-alive 是一个抽象组件,它可以缓存包裹的组件实例,避免重复创建和销毁,从而提高性能
生命周期钩子来处理组件的激活和停用状态。生命周期钩子不会触发,同时新增了。
2025-02-28 11:31:28
194
原创 vue组件之间通讯方式(面试概率极大)vueX pinia provide inject有点像react中的useContext
methods: {</script>-- 父组件 --><template><div></div><script>},data() {return {},methods: {
2025-02-25 11:28:11
226
原创 at()函数
最常用的arr.at(-1)得到数组的最后一个值,和pop()的区别是会改变原数组不会得到数组的第一个值,和shift()的区别是会改变原数组不会。
2025-02-21 11:44:47
153
原创 性能优化(面试必问)
中高级前端工程师必备14种性能优化方案马上又是金三银四了,又要面对头疼的面试题了。经常容易被问到性能优化相关的问题,没准 - 掘金https://juejin.cn/post/7188894691356573754
2025-02-21 10:17:25
301
原创 unknow和any的区别
any类型会完全绕过 TypeScript 的类型检查,提供最大的灵活性,但会牺牲类型安全性,容易引入运行时错误。unknown类型在保证灵活性的同时,强调了类型安全。它要求开发者在使用值之前先进行类型检查或类型断言,有助于减少潜在的运行时错误。因此,在大多数情况下,推荐优先使用unknown类型而不是any类型。
2025-02-21 09:29:11
389
原创 React.memo
memo接受两个参数,一个是需要缓存的组件,第二个是函数(必须是函数,不能直接写ture(缓存)、false(不缓存),即使函数的返回值是boolean)
2025-02-20 11:41:26
167
原创 windows中使用docker
从你给出的错误信息可知,在部署 WSL2 发行版时碰到问题,具体是当前计算机配置不支持 WSL2,这通常是由于未启用 “虚拟机平台” 可选组件或者在 BIOS 里未开启虚拟化功能所导致的。
2025-02-10 16:48:54
1940
原创 解构赋值学习
首先展开对象的所有属性,然后再添加或覆盖labelList属性。这意味着先将里的所有属性都放入新对象,接着把labelList转换为字符串后的结果赋值给新对象的labelList属性。先添加或设置labelList属性为转换后的字符串,然后再展开对象的所有属性。这可能会导致如果中原本就有labelList属性,那么展开时会覆盖之前设置的labelList属性值。
2025-02-08 09:41:15
481
原创 Webpack 和 Vite 的区别
综上所述,Webpack 和 Vite 各有优缺点,开发者可以根据项目的具体需求和规模来选择合适的构建工具。
2025-02-07 21:03:17
783
原创 for...in 和 for...of
for...in和for...offor...in上述代码会依次输出对象obj的属性名abc。for...of此代码会依次输出数组arr的元素123。
2025-02-07 14:50:18
191
原创 vue和reacts数据响应式的差异
更新触发方式Vue 通过或Proxy的setter自动触发更新,而 React 需要手动调用setState或useState的更新函数。数据处理原则Vue 可以直接修改数据对象,且支持深度响应式,而 React 遵循状态不可变原则,需要创建新的状态对象。依赖收集Vue 进行细粒度的依赖收集,而 React 主要通过虚拟 DOM 的比较来找出需要更新的部分,不进行依赖收集。
2025-01-22 22:05:20
1086
1
原创 state的异步跟新
的值,而是会将状态更新排入队列,并在稍后进行更新。预测下刷新页面后,页面上会有啥数字出现。React 不会立即更新。执行之后,组件会重新渲染。只会在组件挂载后执行一次。
2025-01-22 20:20:43
392
原创 watch里可以写异步吗
如果在里面写复杂的异步操作,会让代码逻辑变得难以理解和维护。例如,同时监听多个数据变化并触发不同异步操作时,代码会很混乱。watch 在数据变化后就会触发,但是异步任务有延迟,在这个延迟期间数据可能已经被其他操作修改了,就容易出现问题。不过,有些简单场景下在 watch 中写异步是可以接受的。比如,只是简单地监听一个数据变化,并且异步操作不会和其他复杂逻辑相互干扰。在这个例子中, watch 监听 inputValue 的变化,通过 setTimeout 延迟处理输入的值,这是比较简单直接的异步操作。
2024-12-08 23:43:59
462
原创 C++和js对比
C++// 定义整型变量// 定义浮点型变量// 定义字符型变量return 0;// 定义变量(使用 let 或 var,这里用 let,推荐用于块级作用域)C++// 函数声明std::cout << "结果: " << result << std::endl;return 0;// 函数定义JavaScriptconsole.log("结果: " + result);C++public:// 构造函数private:int width;
2024-11-21 23:32:30
413
原创 python中如何使用另外一个文件里的某个方法
文件,在其中定义需要被其他文件调用的函数(方法)。例如,定义一个简单的加法函数。创建另一个 Python 文件(假设名为。文件不在同一个目录下,可能需要将。),在这个文件里导入。
2024-11-21 22:19:46
776
原创 python中的base64使用小笑话 flask,fastapi
也是十分搞笑,一度以为是python版本的问题,最后通过flask启动服务,通过掉接口的方式返回base64。没有一点问题,原来是缺少文件被vscode的控制台给隐藏了!在使用base64的时候将本地的图片转换为base64。复制到浏览器上就出问题为啥。代码如下,代码绝对正确。
2024-11-21 22:13:58
367
1
原创 在循环中只set一次
for (const e of files) { console.log(e) setFileList([...fileList, { file: e }])这里为啥只会set一次。
2024-11-12 19:45:15
417
原创 useLayoutEffect里一般会做那些事,代码示例
例如,在一个列表组件中,当新的数据加载进来时,需要同步更新列表项的位置和布局。假设列表项有动画效果,并且动画的起始位置需要和数据加载后的实际位置一致。- 有些UI库在初始化或更新组件时,需要在DOM更新后立即进行操作。比如,一个模态框库,需要在模态框的DOM元素渲染完成后,立即设置其位置和显示属性。- 示例:创建一个组件,该组件中有一个 div 元素,当组件挂载后,获取这个 div 的高度,并将这个高度值作为另一个 div 的最小高度。// 可以在这里进行一些同步的布局调整,比如设置动画的起始位置。
2024-11-04 23:11:50
474
原创 ioc的优点
在传统的程序设计中,组件之间的依赖关系是硬编码的。使用IoC后,这种依赖关系被反转,类A不再负责创建类B,而是通过外部容器来提供。这使得各个组件可以独立开发和测试,比如在单元测试中,可以很容易地用模拟对象替换真实的依赖对象,而不影响被测试的组件。例如,要替换某个服务的实现,只需要在容器配置中修改相关的绑定关系,而不需要在每个使用该服务的地方进行修改。例如,一个数据访问层的组件,在不同的业务逻辑模块中都可以通过IoC容器注入使用,而不用担心它与其他模块的依赖冲突。- 解耦组件之间的依赖关系。
2024-11-04 22:15:27
273
原创 vite如何自定义插件,vite如何优化,代码示例
例如,设置 server.fs.strict 为 false ,这样Vite在开发服务器启动时不会严格检查文件系统,可能会加快启动速度。- 可以使用 postcss - preset - env 等工具来优化CSS。- 例如,创建一个简单的插件,将代码中的 console.log 替换为自定义的日志函数。- 在 vite.config.js 文件中,将自定义插件添加到 plugins 数组中。- 然后在 vite.config.js 中配置CSS的 postcss 选项。javascript 复制。
2024-11-04 21:27:45
579
原创 xinference , quantization
量化是将模型中原本用较高精度(如 32 位浮点数)表示的数据,转换为较低精度(如 8 位整数、4 位整数等)表示的过程。这样做的主要目的是减少模型的存储需求和计算量,从而提高模型的部署和运行效率,尤其适用于资源受限的设备或需要高并发处理的场景。具体选择哪种量化方式,需要根据模型的具体需求、硬件资源以及对精度的要求等因素综合考虑。如果硬件资源充足且对精度要求极高,可能选择。如果希望在保证一定性能的同时尽量减少资源占用,可以选择。字段代表模型的量化方式14。
2024-11-04 19:59:31
386
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人