<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chloeeeeeeee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Chloeeeeeeee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Chloeeeeeeee]]></copyright><item><title><![CDATA[Chrome 五大进程记忆锦囊]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/162526448</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/162526448</guid><author>Chloeeeeeeee</author><pubDate>Thu, 02 Jul 2026 18:39:18 +0800</pubDate><description><![CDATA[这篇文章提供了6种趣味记忆法，帮助快速掌握Chrome多进程架构。核心内容可概括为： 基础架构：1个页面默认含4进程（网络/浏览器/GPU/渲染），有插件则+1 形象记忆法：餐厅比喻（经理/厨师/摆盘师/采购员）、首字母故事、时间线演变 实用技巧：顺口溜"网浏渲G插"、任务管理器对照、面试30秒话术 关键优势：进程隔离解决安全性/稳定性问题，代价是更高内存占用 通过场景化联想替代机械记忆，10秒掌握核心框架，30秒应对技术提问。]]></description><category></category></item><item><title><![CDATA[在 React 项目里下载 CSV 文件常见的两种方式]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/151800468</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/151800468</guid><author>Chloeeeeeeee</author><pubDate>Wed, 17 Sep 2025 18:31:56 +0800</pubDate><description><![CDATA[React项目中下载CSV文件的两种实现方式：1）前端生成CSSV数据，通过创建隐藏a标签触发下载；2）从后端获取文件流，使用Blob对象和URL.createObjectURL实现下载。前者适合已有前端数据的场景，后者需要确保后端设置正确的响应头。两种方式都通过动态创建和移除a标签来完成下载操作，提供完整的代码示例和组件调用方式。]]></description><category></category></item><item><title><![CDATA[前端静态资源缓存与部署实践总结]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/151072879</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/151072879</guid><author>Chloeeeeeeee</author><pubDate>Mon, 01 Sep 2025 15:42:36 +0800</pubDate><description><![CDATA[本文对比了前端在Bucket静态托管和k8s Pod+Nginx两种部署方式的差异，重点分析了k8s部署可能导致用户请求到旧JS文件的原因（浏览器缓存、Nginx配置、k8s滚动更新等）。提出了最佳缓存策略：入口文件index.html禁止缓存，带hash的静态资源使用长缓存。最后给出了改进版Nginx配置方案，通过添加Cache-Control头等优化，既保证版本更新及时性，又提升缓存性能。特别强调了配置中需要添加always参数，避免304响应丢失缓存控制头。]]></description><category></category></item><item><title><![CDATA[useEventCallback 和 useCallback 的区别]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/148311101</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/148311101</guid><author>Chloeeeeeeee</author><pubDate>Thu, 29 May 2025 15:20:01 +0800</pubDate><description><![CDATA[React Hooks 中的 useEventCallback 和 useCallback 都用于记忆化函数，但核心区别在于闭包处理。useCallback 依赖改变时才更新函数引用，容易在异步操作中产生闭包陷阱。而useEventCallback (需第三方库)会保持函数引用稳定，同时始终访问最新状态，特别适合事件监听、定时器等场景。]]></description><category></category></item><item><title><![CDATA[基于 Vue 2 开发的分页卡片列表组件（带懒加载和点击事件）]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/147459976</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/147459976</guid><author>Chloeeeeeeee</author><pubDate>Wed, 23 Apr 2025 17:53:26 +0800</pubDate><description><![CDATA[这是一个基于 Vue 2 开发的可复用卡片列表组件，支持以下功能：分页加载：初始显示部分数据，滚动到底部自动加载更多；懒加载机制：通过监听页面滚动事件实现无限加载；点击交互：每个卡片可点击，事件由卡片内部触发并向上传递；加载状态显示：加载新数据时展示“加载中...”提示；]]></description><category></category></item><item><title><![CDATA[一些基本的 Vue 规范]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/147458436</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/147458436</guid><author>Chloeeeeeeee</author><pubDate>Wed, 23 Apr 2025 17:01:15 +0800</pubDate><description><![CDATA[Vue 的规范主要指的是开发时遵循的一系列最佳实践、风格指南和项目结构组织方式，目的是为了让 Vue 项目更具可维护性、可读性和一致性。]]></description><category></category></item><item><title><![CDATA[Astro 群岛 和 Astro 组件 的区别]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/146315980</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/146315980</guid><author>Chloeeeeeeee</author><pubDate>Mon, 17 Mar 2025 15:21:32 +0800</pubDate><description><![CDATA[简单来说，Astro 组件的本质是 .astro 文件，用于生成静态 HTML，适用于静态内容（如博客、文档、营销网站）；Astro 群岛的本质是 Astro 组件 + client: 指令，用于启用 JavaScript，适用于局部动态交互（如搜索框、购物车、点赞按钮）。]]></description><category></category></item><item><title><![CDATA[Flutter 实现消息推送的方法]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145996425</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145996425</guid><author>Chloeeeeeeee</author><pubDate>Mon, 03 Mar 2025 19:04:22 +0800</pubDate><description><![CDATA[Flutter 实现消息推送通常有以下几种方式：1. 使用 Firebase Cloud Messaging (FCM)（推荐）；2. 使用 OneSignal，支持更强大的推送功能；3. 如果只需要本地通知（不依赖服务器），可以使用 flutter_local_notifications。]]></description><category></category></item><item><title><![CDATA[在已有的原生 App 里嵌入 Flutter 页面的方法]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145910213</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145910213</guid><author>Chloeeeeeeee</author><pubDate>Thu, 27 Feb 2025 17:50:04 +0800</pubDate><description><![CDATA[在原生 App 中嵌入 Flutter 页面，通常使用 Flutter 提供的平台通道（Platform Channels）来实现原生代码与 Flutter 之间的交互。具体实现方式依赖于原生 App 的平台（如 Android 或 iOS）]]></description><category></category></item><item><title><![CDATA[在 Flutter 中实现文件读写]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145780487</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145780487</guid><author>Chloeeeeeeee</author><pubDate>Fri, 21 Feb 2025 16:26:52 +0800</pubDate><description><![CDATA[通过一个例子演示如何在 Flutter 中实现文件读写]]></description><category></category></item><item><title><![CDATA[Flutter 中的数据跨层传递方案]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145681380</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145681380</guid><author>Chloeeeeeeee</author><pubDate>Mon, 17 Feb 2025 13:59:01 +0800</pubDate><description><![CDATA[在 Flutter 中，数据跨层传递（从上层组件传递到下层组件，或跨多个层级传递）有多种方案。状态管理：推荐 Provider / Riverpod；子 → 父传递：Notification（事件通知），或者直接 回调（Function）；轻量级方案：GetX（简洁），或者 直接 StatefulWidget 维护本地状态。]]></description><category></category></item><item><title><![CDATA[在 Flutter 实现下拉刷新、上拉加载更多和一键点击回到顶部的功能]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145577028</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145577028</guid><author>Chloeeeeeeee</author><pubDate>Tue, 11 Feb 2025 17:54:53 +0800</pubDate><description><![CDATA[在 Flutter 中，实现下拉刷新、上拉加载更多和一键点击回到顶部的功能，通常会结合使用 `RefreshIndicator`、`ListView` 和 `ScrollController` 来实现这些交互效果。]]></description><category></category></item><item><title><![CDATA[Flutter 中的生命周期]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145567133</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145567133</guid><author>Chloeeeeeeee</author><pubDate>Tue, 11 Feb 2025 11:12:35 +0800</pubDate><description><![CDATA[在 Flutter 中，StatefulWidget 和 StatelessWidget 这两种 Widget 的生命周期不同，主要关注的是 StatefulWidget，因为它涉及到状态的管理和更新。]]></description><category></category></item><item><title><![CDATA[Dart 语言的父类继承，接口实现和混入]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145201672</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/145201672</guid><author>Chloeeeeeeee</author><pubDate>Fri, 17 Jan 2025 10:46:14 +0800</pubDate><description><![CDATA[在 Dart 语言中，父类继承、接口实现和混入（mixin）是实现代码复用和构建灵活应用的重要手段。1. 父类继承：用于类之间存在自然的“is-a”关系，比如动物和狗。
2. 接口实现：当需要确保某些类提供特定行为时，比如持久化、序列化。
3. 混入：当需要多个类共享行为，但它们之间没有继承关系时，比如“会飞的”和“会游泳的”。]]></description><category></category></item><item><title><![CDATA[减少 Flutter 应用体积的常用方法]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144539032</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144539032</guid><author>Chloeeeeeeee</author><pubDate>Tue, 17 Dec 2024 16:37:56 +0800</pubDate><description><![CDATA[减少 Flutter 应用体积的方法包括：移除未使用代码和资源；启用代码混淆与压缩；优化图片为 WebP 格式；启用分体构建 (--split-per-abi)；禁用调试符号；使用图标树摇 (--tree-shake-icons)；优化依赖包；使用 AOT 编译和按需加载模块；构建 App Bundle 以适配设备。确保在 build.gradle 中配置混淆规则，删除多余依赖和资源，结合工具压缩静态资源并进行精简构建。]]></description><category></category></item><item><title><![CDATA[Flutter 的事件循环机制]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144265056</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144265056</guid><author>Chloeeeeeeee</author><pubDate>Thu, 05 Dec 2024 13:46:07 +0800</pubDate><description><![CDATA[Flutter 的事件循环机制建立在 Dart 的异步模型之上，采用单线程、基于事件队列和微任务队列的调度方式。理解这一机制有助于开发者优化应用性能，避免阻塞主线程，同时确保流畅的用户体验。]]></description><category></category></item><item><title><![CDATA[在 Flutter app 中，通过视频 URL 下载视频到手机相册]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144081586</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/144081586</guid><author>Chloeeeeeeee</author><pubDate>Wed, 27 Nov 2024 13:35:50 +0800</pubDate><description><![CDATA[在 Flutter app 中，使用 dio 下载文件，结合 path_provider 获取临时存储路径，以及 gallery_saver 将文件保存到相册。]]></description><category></category></item><item><title><![CDATA[Flutter 应用在真机上调试的流程]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143777301</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143777301</guid><author>Chloeeeeeeee</author><pubDate>Thu, 14 Nov 2024 18:15:38 +0800</pubDate><description><![CDATA[在真机上调试 Flutter 应用的方法有很多，可以使用 USB 数据线连接设备到电脑进行调试，也可以通过无线方式进行 Flutter 真机调试。]]></description><category></category></item><item><title><![CDATA[在 Flutter 应用中调用后端接口的方法]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143719228</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143719228</guid><author>Chloeeeeeeee</author><pubDate>Tue, 12 Nov 2024 17:12:32 +0800</pubDate><description><![CDATA[在 Flutter 中调用后端接口通常使用 `http` 包来发起 HTTP 请求。注意：1. 要添加适当的错误处理逻辑，例如网络超时或无网络连接的情况；2. HTTP 请求是异步操作，使用 async 和 await 进行异步调用并处理结果；3. 对于敏感信息（如用户密码），请确保后端 API 使用 HTTPS 并遵循安全的认证机制。]]></description><category></category></item><item><title><![CDATA[Next.js 学习 - 路由处理程序 (Route Handlers)]]></title><link>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143122421</link><guid>https://blog.youkuaiyun.com/Chloeeeeeeee/article/details/143122421</guid><author>Chloeeeeeeee</author><pubDate>Mon, 21 Oct 2024 19:08:24 +0800</pubDate><description><![CDATA[Next.js 的路由处理程序非常灵活，通过文件系统轻松创建各种路径，还可以处理不同的 HTTP 方法，传递路径和查询参数，并控制缓存行为，满足多种开发需求。]]></description><category></category></item></channel></rss>