<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一个小白的成长之路]]></title><description><![CDATA[日常学习记录]]></description><link>https://blog.youkuaiyun.com/NINI94</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NINI94]]></copyright><item><title><![CDATA[Office Web Add-ins 插件开发]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/158656734</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/158656734</guid><author>NINI94</author><pubDate>Wed, 04 Mar 2026 21:30:00 +0800</pubDate><description><![CDATA[首先我们得明确一个核心概念：Office Web Add-ins 不是传统意义上的“插件程序”，而是基于 Office.js 构建的“Web 应用嵌入方案”。它本质是用我们熟悉的 Web 技术（HTML、CSS、JavaScript）开发一个轻量级 Web 应用，然后通过 Office 的加载机制，嵌入到 Word、Excel 等 Office 软件的界面中。]]></description><category></category></item><item><title><![CDATA[无感刷新 token 机制]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/158468556</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/158468556</guid><author>NINI94</author><pubDate>Mon, 02 Mar 2026 22:45:00 +0800</pubDate><description><![CDATA[用短期 AT 降低泄露风险窗口；用受控 RT 实现平滑续期；通过拦截器与并发控制，让用户几乎无感知地保持登录态。它不是“唯一方案”，但在前后端分离与移动端场景里，是一套工程上成熟、可落地、可演进的实践。]]></description><category></category></item><item><title><![CDATA[从零到一：手写 Promise 核心原理与实现]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/155201273</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/155201273</guid><author>NINI94</author><pubDate>Wed, 26 Nov 2025 20:45:00 +0800</pubDate><description><![CDATA[至此，我们已经实现了一个功能相当完备的 Promise，它涵盖了 Promise/A+ 规范的大部分核心内容。回顾整个过程，我们从最基础的状态管理，到处理异步回调，再到实现复杂的链式调用和静态方法，一步步揭开了 Promise 的神秘面纱。为什么 Promise 状态一旦改变就不可逆转。为什么then方法会返回一个新的 Promise，这是链式调用的基石。方法的复杂性，以及它如何优雅地处理各种边界情况，确保了不同 Promise 实现之间的互操作性。]]></description><category></category></item><item><title><![CDATA[一文讲清楚“Promise”、“async/await”]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/155032199</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/155032199</guid><author>NINI94</author><pubDate>Mon, 24 Nov 2025 22:00:00 +0800</pubDate><description><![CDATA[异步编程的一种解决方案，最早由社区提出Promise 是一个构造函数，接收一个函数作为参数，返回一个 Promise 实例采用 then 链式调用，避免回调地狱比传统的解决方案回调函数和事件更合理更强大简单理解，Promise 是一个容器，保存着某个未来才会结束的事件的结果// 多个异步顺序执行 => 复合链式调用resolve();}, 500);});resolve();}, 1000);});resolve();});Promise 通过创建，executor。]]></description><category></category></item><item><title><![CDATA[React 组件通信与 Redux 核心原理 + react-redux 结合实践]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/154701126</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/154701126</guid><author>NINI94</author><pubDate>Tue, 11 Nov 2025 20:12:16 +0800</pubDate><description><![CDATA[/ 文件 store/index.js// 细分 reducer// 核心：根据 action.type 判断动作类型default:// ...default:// 多个 reducer 合并});// 创建 Store。]]></description><category></category></item><item><title><![CDATA[React 17：过渡版本与兼容性优化]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/151794350</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/151794350</guid><author>NINI94</author><pubDate>Tue, 11 Nov 2025 19:13:49 +0800</pubDate><description><![CDATA[Facebook 于 2020 年 10 月 发布 React 17 版本，其核心定位是 “过渡版本”（Transition Release）—— 它不追求新增颠覆性特性，而是聚焦于 降低后续版本（如 React 18）的升级成本、解决长期存在的兼容性问题，并为框架的未来演进铺路。]]></description><category></category></item><item><title><![CDATA[React 16：Fiber 架构奠基与 Hooks 正式登场]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/151787383</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/151787383</guid><author>NINI94</author><pubDate>Sat, 18 Oct 2025 18:35:55 +0800</pubDate><description><![CDATA[React 16 到 19 的版本迭代是其架构从 “同步渲染” 到 “并发渲染”、开发模式从 “类组件” 到 “函数式组件” 的关键转型期，每一代更新都围绕 “性能优化”“开发体验简化”“架构扩展性” 三大核心目标。所以我整理了下这几个关键版本的详细变更、废弃内容及背后的设计逻辑：React 16（2017 年 9 月发布）是 React 发展史上的里程碑版本，引入了全新的 Fiber 架构，彻底重构了渲染引擎，同时新增了多项关键特性，为后续的并发渲染、Hooks 等重大升级奠定了基础。]]></description><category></category></item><item><title><![CDATA[从原生到框架：前端的错误监听]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/151583118</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/151583118</guid><author>NINI94</author><pubDate>Fri, 12 Sep 2025 17:58:01 +0800</pubDate><description><![CDATA[在前端开发中，错误就像隐藏在代码里的 “暗礁”—— 可能是用户操作时的偶发异常，也可能是特定环境下的兼容性问题。如果没有完善的错误监听机制，这些 “暗礁” 会悄悄摧毁用户体验，甚至导致应用崩溃。今天，我们就从原生  JavaScript 出发，逐步深入 Vue 和 React 两大框架的错误处理方案。]]></description><category></category></item><item><title><![CDATA[JavaScript —— 闭包]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/150770090</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/150770090</guid><author>NINI94</author><pubDate>Wed, 10 Sep 2025 18:45:45 +0800</pubDate><description><![CDATA[本文通过分析闭包是什么、闭包的作用、闭包的实现、闭包的应用场景以及可能带来的陷阱等多个方面，达到快速掌握闭包这一概念的目的]]></description><category></category></item><item><title><![CDATA[多标签 tab 同步状态和数据]]></title><link>https://blog.youkuaiyun.com/NINI94/article/details/151399994</link><guid>https://blog.youkuaiyun.com/NINI94/article/details/151399994</guid><author>NINI94</author><pubDate>Wed, 10 Sep 2025 14:50:27 +0800</pubDate><description><![CDATA[如何在保证安全性的前提下，打破标签页间的 “数据壁垒”，实现状态与数据的高效同步，成为 Web 开发中的常见需求。]]></description><category></category></item></channel></rss>