<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_43667390的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_43667390</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_43667390]]></copyright><item><title><![CDATA[Electron 学习笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/160858475</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/160858475</guid><author>weixin_43667390</author><pubDate>Thu, 07 May 2026 14:47:05 +0800</pubDate><description><![CDATA[在使用 Electron 开发桌面应用的时候，Electron 为我们提供了默认的菜单，但是这个菜单仅仅是用于演示而已。我们可以自定义我们应用的菜单。在 Electron 中，想要自定义菜单，可以使用 Menu 这个模块。// 做我们的自定义菜单// 定义我们的自定义菜单label: "",},label: "菜单1",submenu: [label: "菜单1-1",},label: "菜单1-2",click() {// 该菜单项目被点击后要执行的逻辑。]]></description><category></category></item><item><title><![CDATA[文档协同设计]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/160447488</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/160447488</guid><author>weixin_43667390</author><pubDate>Thu, 23 Apr 2026 17:45:29 +0800</pubDate><description><![CDATA[文档协同，是指在对进行实时编辑协作。]]></description><category></category></item><item><title><![CDATA[React与Vue3渲染流程完整对比笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159828441</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159828441</guid><author>weixin_43667390</author><pubDate>Sat, 04 Apr 2026 15:11:02 +0800</pubDate><description><![CDATA[维度ReactVue3核心理念响应式数据驱动更新策略推式：开发者触发更新拉式：自动追踪依赖优化方向运行时调度优化编译时静态优化心智负担较高（需理解闭包、依赖）较低（响应式自动处理）]]></description><category></category></item><item><title><![CDATA[npm 包管理笔记整理]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159652453</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159652453</guid><author>weixin_43667390</author><pubDate>Mon, 30 Mar 2026 17:30:49 +0800</pubDate><description><![CDATA[从软件工程的角度来看，包是一种组织代码结构的方式。通常情况下，一个包提供一个特定的功能来解决某一个问题，它会将相关的所有目录和文件放置在一个独立的文件夹中，并通过一个特殊的文件（）来描述这个包。此外，若要向 npm 发布包，npm 要求必须要有文件。包：被包管理器（如 npm、yarn、pnpm）初始化之后的目录，会存在一个包描述文件，这样的目录被称之为包。仓库：被版本控制系统（如 svn、git）初始化之后的目录，例如使用 git 进行初始化之后，会存在一个.git的目录。]]></description><category></category></item><item><title><![CDATA[npm私服搭建学习笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159611284</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159611284</guid><author>weixin_43667390</author><pubDate>Sun, 29 Mar 2026 12:54:38 +0800</pubDate><description><![CDATA[NPM 私服搭建完整指南一、为什么需要搭建 NPM 私服在企业应用开发中，搭建私有 NPM 仓库是必要的基础设施选择：核心价值代码私密性保障：企业内部业务组件、工具库等敏感代码需要私有化管理，避免泄露
访问速度优化：局域网内部访问，依赖下载速度显著提升，特别适合大型项目和 CI/CD 场景
权限精细控制：可针对不同团队、项目设置发布、访问权限，便于维护和管理
成本效益显著：npm 官方私有包需要付费订阅，自建私服无额外成本适用场景企业内部组件库、工具库共享
多项目公共模块统一管理
特定版本依赖的稳定存储
C]]></description><category></category></item><item><title><![CDATA[Prettier 学习笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159499855</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159499855</guid><author>weixin_43667390</author><pubDate>Thu, 26 Mar 2026 11:10:20 +0800</pubDate><description><![CDATA[在项目根目录创建配置说明：使用单引号semi：不添加分号printWidth：单行最长 80 字符：ES5 风格的尾随逗号。]]></description><category></category></item><item><title><![CDATA[抽象语法书学习笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159497720</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159497720</guid><author>weixin_43667390</author><pubDate>Thu, 26 Mar 2026 10:44:06 +0800</pubDate><description><![CDATA[树实际上是一种数据结构。我们都知道计算机是用来处理数据的，处理数据的第一步就是先要将数据存储进去。那么存储数据的方式就有多种多样。现实生活中的例子：比如我们有一个书柜（计算机）放 10 本书（数据），那么我放置这 10 本书的方式是多种多样的，我可以横着放、竖着放、斜着放。所谓数据结构，实际上就是数据（书）在计算机（书柜）中组织和管理的一种方式。根据不同的场景，使用合适的数据结构能够帮助我们高效地对数据进行访问和操作。语法树：简单来讲，就是将我们所写的代码转为树的结构。抽象语法树。]]></description><category></category></item><item><title><![CDATA[sass学习笔记整理]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159419302</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159419302</guid><author>weixin_43667390</author><pubDate>Tue, 24 Mar 2026 11:15:10 +0800</pubDate><description><![CDATA[CSS 预处理器是一种通过增强语法来扩展 CSS 功能的技术。开发者使用增强语法编写样式，然后通过编译器将其转换为标准 CSS。// 定义 Mixinfont: {size: 20px;// 调用 Mixinp {div {编译结果p {div {使用@function和@return变量系统：统一管理样式值嵌套语法：清晰的选择器层级Mixin 和函数：代码复用和计算控制指令：条件判断和循环模块化：通过@import@use@forward。]]></description><category></category></item><item><title><![CDATA[JavaScript库设计注意事项]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/159210445</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/159210445</guid><author>weixin_43667390</author><pubDate>Wed, 18 Mar 2026 17:13:28 +0800</pubDate><description><![CDATA[函数的设计函数主要就是需要注意函数三要素：函数名、函数参数、返回值函数名要力求准确无误，最好能够通过函数名就知道该函数的作用参数的个数尽量控制在 1-3 个以内，如果是复杂类型的参数，最好不要修改原来的参数返回值尽量保持和传入的参数相同的类型提高健壮性需要对参数做一些防御性的措施，特别是在类型上面的判断异常捕获需要考虑到出错时的备选方案，特别是封装的函数中调用了其他函数时，尤其需要考虑出现异常的情况下应该怎么做安全防护不需要向外暴露的功能，就不要向外暴露。]]></description><category></category></item><item><title><![CDATA[vue模版编译原理]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158459741</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158459741</guid><author>weixin_43667390</author><pubDate>Fri, 27 Feb 2026 11:28:13 +0800</pubDate><description><![CDATA[编译（Compile）源码（Source Code）：语言 A，即输入的语言目标代码（Target Code）：语言 B，即输出的语言编译器（Compiler）：执行翻译工作的程序AST（Abstract Syntax Tree，抽象语法树）是一种树状的数据结构，用于表示代码的语法结构。树：一种层次化的数据结构，由节点和边组成语法：描述编程语言的语法规则抽象：忽略代码中的非关键细节（如空格、换行符等）抽象在计算机科学中指的是：将关键部分从细节中分离出来，忽略不必要的细节，专注问题的关键方面。]]></description><category></category></item><item><title><![CDATA[vite 为什么选择rollup 作为生产打包工具]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158430967</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158430967</guid><author>weixin_43667390</author><pubDate>Thu, 26 Feb 2026 20:11:49 +0800</pubDate><description><![CDATA[Vite 选 Rollup 不是"误用"，而是"借力打力"——用 esbuild 解决开发速度，用 Rollup 解决生产优化，通过插件桥接和增强填补生态缺口。这种组合让 Vite 在保持极速开发的同时，又能输出生产级的高质量代码，是目前前端构建工具的黄金组合之一。]]></description><category></category></item><item><title><![CDATA[rollup插件机制]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158419836</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158419836</guid><author>weixin_43667390</author><pubDate>Thu, 26 Feb 2026 10:25:44 +0800</pubDate><description><![CDATA[简单总结]]></description><category></category></item><item><title><![CDATA[前端打包工具webpack、vite，顺便加上rollup、esbuild]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158419581</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158419581</guid><author>weixin_43667390</author><pubDate>Thu, 26 Feb 2026 10:16:02 +0800</pubDate><description><![CDATA[简单总结]]></description><category></category></item><item><title><![CDATA[移动端面试题总结]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158385931</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158385931</guid><author>weixin_43667390</author><pubDate>Wed, 25 Feb 2026 14:52:45 +0800</pubDate><description><![CDATA[可以通过uni.startPullDownRefresh()，在onLoad中（即页面刚加载进来时）调用该API实现开始下拉功能；在下拉刷新函数中，调用后台接口获取每一页的数据，将每次获取的数据列表累加起来，直到请求到最后一页数据后，调用uni.stopPullDownRefresh()，关闭下拉刷新，这时，即便再次下拉，也不会请求到接口数据了。混合开发（HTML5开发）相当于一种框架开发。]]></description><category></category></item><item><title><![CDATA[webapp 常见问题总结]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158385909</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158385909</guid><author>weixin_43667390</author><pubDate>Wed, 25 Feb 2026 14:51:49 +0800</pubDate><description><![CDATA[1px。]]></description><category></category></item><item><title><![CDATA[vite学习笔记]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/158262589</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/158262589</guid><author>weixin_43667390</author><pubDate>Sat, 21 Feb 2026 11:52:18 +0800</pubDate><description><![CDATA[build: {output: {// 方式 1：静态配置// 方式 2：函数式配置（更灵活）// 第三方库打包到 vendor// 路由组件单独打包。]]></description><category></category></item><item><title><![CDATA[你是否真正的懂得React的memoization]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/157691351</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/157691351</guid><author>weixin_43667390</author><pubDate>Tue, 03 Feb 2026 14:32:20 +0800</pubDate><description><![CDATA[memoization 的本质：保持引用稳定，避免不必要的 re-render 和副作用比较机制：原始类型按值比较，引用类型按引用比较：useCallback 缓存函数引用，useMemo 缓存计算结果React.memo：缓存组件渲染结果，通过 props 比较决定是否重新渲染性能权衡：不要过度优化，先测量再优化。]]></description><category></category></item><item><title><![CDATA[前端性能优化简单梳理]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/157135885</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/157135885</guid><author>weixin_43667390</author><pubDate>Mon, 19 Jan 2026 14:54:05 +0800</pubDate><description><![CDATA[从发起请求到收到响应首字节的时间，包含 DNS 查询、TCP 连接、TLS 握手和服务器处理时间。：TTI 已被弃用，建议使用 TBT（Total Blocking Time）作为替代指标。：避免 FOIT（Flash of Invisible Text），允许立即使用回退字体。浏览器首次绘制文本、图片（带尺寸）、SVG、非白色 canvas 等内容的时间点。页面完全可交互的时间点（主线程空闲超过 50ms 连续 5 秒）。：默认情况下，字体加载期间文本不可见（FOIT）：只提取实际使用的汉字。]]></description><category></category></item><item><title><![CDATA[js 中的定时器精度到底准不准？]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/157131150</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/157131150</guid><author>weixin_43667390</author><pubDate>Mon, 19 Jan 2026 10:59:17 +0800</pubDate><description><![CDATA[JS定时器不精准，只保证最小延迟根本原因：单线程、事件循环、浏览器节流精度损失：通常1-15ms，极端情况下可能数分钟解决方案：RAF、Web Workers、误差补偿、现代Web APIJavaScript定时器的精准度问题是一个多层次的系统性问题，从硬件到软件，从浏览器内核到JavaScript单线程模型，每个层面都可能影响定时器的准确性。理解这些底层机制不仅有助于面试，更能帮助我们在实际开发中做出更好的技术选择和性能优化。承认局限性：理解JS定时器的不精准性分析根因。]]></description><category></category></item><item><title><![CDATA[js 数据类型讲解]]></title><link>https://blog.youkuaiyun.com/weixin_43667390/article/details/156990138</link><guid>https://blog.youkuaiyun.com/weixin_43667390/article/details/156990138</guid><author>weixin_43667390</author><pubDate>Thu, 15 Jan 2026 17:25:46 +0800</pubDate><description><![CDATA[JavaScript 共有。]]></description><category></category></item></channel></rss>