<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[Deng Deng]]></title>
        <description><![CDATA[A wonderful blog about JavaScript]]></description>
        <link>http://github.com/dylang/node-rss</link>
        <generator>RSS for Node</generator>
        <lastBuildDate>Fri, 15 May 2026 04:34:06 GMT</lastBuildDate>
        <item>
            <title><![CDATA[可访问性与样式工程化：让交互可达、样式可维护]]></title>
            <description><![CDATA[把 a11y 原则和样式工程规范结合起来，提升长期可维护性与协作效率。]]></description>
            <link>http://localhost:3000/Style/accessibility-and-style-engineering</link>
            <guid isPermaLink="true">http://localhost:3000/Style/accessibility-and-style-engineering</guid>
            <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[关键帧与性能优化：避免掉帧和电量杀手动画]]></title>
            <description><![CDATA[掌握 keyframes 与 GPU 友好属性，做出流畅且可控的动画效果。]]></description>
            <link>http://localhost:3000/Style/keyframes-and-performance-optimization</link>
            <guid isPermaLink="true">http://localhost:3000/Style/keyframes-and-performance-optimization</guid>
            <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[过渡与动效原则：transition、transform 与节奏控制]]></title>
            <description><![CDATA[让动画服务于反馈而不是炫技，掌握常用动效参数与落地规范。]]></description>
            <link>http://localhost:3000/Style/transitions-transforms-and-motion</link>
            <guid isPermaLink="true">http://localhost:3000/Style/transitions-transforms-and-motion</guid>
            <pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[交互状态设计：hover、focus、active 的一致性]]></title>
            <description><![CDATA[建立组件状态反馈规范，让按钮、输入框、列表交互更清晰可预期。]]></description>
            <link>http://localhost:3000/Style/interactive-states-hover-focus-active</link>
            <guid isPermaLink="true">http://localhost:3000/Style/interactive-states-hover-focus-active</guid>
            <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[暗黑模式与主题切换：从“可切换”到“可读性稳定”]]></title>
            <description><![CDATA[掌握主题切换的状态管理与对比度原则，避免暗黑模式下文字可读性崩坏。]]></description>
            <link>http://localhost:3000/Style/dark-mode-and-theme-switch</link>
            <guid isPermaLink="true">http://localhost:3000/Style/dark-mode-and-theme-switch</guid>
            <pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[CSS 变量与主题系统：让样式具备可维护性]]></title>
            <description><![CDATA[用 design token 思维组织颜色、间距、圆角与阴影变量，支撑主题扩展。]]></description>
            <link>http://localhost:3000/Style/css-variables-and-theme-system</link>
            <guid isPermaLink="true">http://localhost:3000/Style/css-variables-and-theme-system</guid>
            <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[响应式策略：Media Query 与 Container Query 配合]]></title>
            <description><![CDATA[学会从“屏幕驱动”升级到“容器驱动”，让组件在不同上下文都能自适应。]]></description>
            <link>http://localhost:3000/Style/responsive-media-container-query</link>
            <guid isPermaLink="true">http://localhost:3000/Style/responsive-media-container-query</guid>
            <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[间距与排版尺度：建立页面视觉秩序]]></title>
            <description><![CDATA[统一 spacing/typography scale，让页面从“能看”升级到“有秩序”。]]></description>
            <link>http://localhost:3000/Style/spacing-and-typography-scale</link>
            <guid isPermaLink="true">http://localhost:3000/Style/spacing-and-typography-scale</guid>
            <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Grid 布局实战：后台看板与复杂分栏页面]]></title>
            <description><![CDATA[掌握 CSS Grid 在二维布局中的优势，写出稳定的后台分栏结构。]]></description>
            <link>http://localhost:3000/Style/grid-layout-dashboard-patterns</link>
            <guid isPermaLink="true">http://localhost:3000/Style/grid-layout-dashboard-patterns</guid>
            <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flex 布局高频模板：导航、卡片、表单三类场景]]></title>
            <description><![CDATA[用最常见的 Flex 模板快速搭建可维护布局，减少“魔法 margin”写法。]]></description>
            <link>http://localhost:3000/Style/flex-layout-common-patterns</link>
            <guid isPermaLink="true">http://localhost:3000/Style/flex-layout-common-patterns</guid>
            <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[盒模型与尺寸计算：让布局不再“莫名其妙”溢出]]></title>
            <description><![CDATA[掌握 content-box、border-box 和尺寸计算规则，定位布局错位更高效。]]></description>
            <link>http://localhost:3000/Style/css-box-model-and-sizing</link>
            <guid isPermaLink="true">http://localhost:3000/Style/css-box-model-and-sizing</guid>
            <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[CSS 单位与字号体系：px、em、rem 到流式排版]]></title>
            <description><![CDATA[建立可扩展的字号与尺寸系统，避免页面在不同设备下比例失衡。]]></description>
            <link>http://localhost:3000/Style/css-units-and-font-size-system</link>
            <guid isPermaLink="true">http://localhost:3000/Style/css-units-and-font-size-system</guid>
            <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Angular DevTools 调试：定位渲染慢与状态异常]]></title>
            <description><![CDATA[掌握 Angular DevTools 的组件树与性能分析，快速定位重渲染、脏检查与状态来源问题。]]></description>
            <link>http://localhost:3000/Angular/angular-devtools-and-debugging</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/angular-devtools-and-debugging</guid>
            <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Angular 性能优化：trackBy、OnPush 与列表渲染控制]]></title>
            <description><![CDATA[用最实用的三板斧优化 Angular 性能：列表 trackBy、组件 OnPush、减少模板重复计算。]]></description>
            <link>http://localhost:3000/Angular/performance-trackby-onpush</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/performance-trackby-onpush</guid>
            <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Signals 与变更检测：更细粒度地驱动视图更新]]></title>
            <description><![CDATA[理解 Signals 的响应式模型与变更检测关系，减少不必要渲染并提升状态表达清晰度。]]></description>
            <link>http://localhost:3000/Angular/signals-and-change-detection</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/signals-and-change-detection</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[RxJS 核心：Observable、pipe 与常用操作符]]></title>
            <description><![CDATA[掌握 map/switchMap/debounceTime/catchError 等高频操作符，处理异步流更稳。]]></description>
            <link>http://localhost:3000/Angular/rxjs-observables-and-operators</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/rxjs-observables-and-operators</guid>
            <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[HttpClient 与拦截器：统一请求层能力]]></title>
            <description><![CDATA[用拦截器统一处理鉴权、错误、重试与日志，避免每个组件重复写请求模板代码。]]></description>
            <link>http://localhost:3000/Angular/http-client-and-interceptors</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/http-client-and-interceptors</guid>
            <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[路由与懒加载：把页面切分成可维护模块]]></title>
            <description><![CDATA[掌握 Angular Router 的主线配置和懒加载思路，提升首屏性能与模块边界清晰度。]]></description>
            <link>http://localhost:3000/Angular/router-and-lazy-loading</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/router-and-lazy-loading</guid>
            <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[依赖注入与服务拆分：让业务逻辑远离组件]]></title>
            <description><![CDATA[学会把 API 调用、缓存与业务规则抽到 Service，组件只关注状态与交互。]]></description>
            <link>http://localhost:3000/Angular/dependency-injection-and-services</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/dependency-injection-and-services</guid>
            <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[表单体系：模板驱动 vs 响应式表单怎么选]]></title>
            <description><![CDATA[明确两种表单方案的边界，知道什么时候用 ngModel，什么时候用 FormGroup。]]></description>
            <link>http://localhost:3000/Angular/forms-template-vs-reactive</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/forms-template-vs-reactive</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[指令与列表渲染：ngIf / ngFor / ngClass 的实战组合]]></title>
            <description><![CDATA[掌握结构型与属性型指令，写出可读、可扩展的条件渲染和列表展示。]]></description>
            <link>http://localhost:3000/Angular/directives-and-list-rendering</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/directives-and-list-rendering</guid>
            <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[组件通信：Input / Output 与单向数据流]]></title>
            <description><![CDATA[学会父子组件通过 Input/Output 协作，避免“子组件直接改父状态”的耦合问题。]]></description>
            <link>http://localhost:3000/Angular/component-communication-input-output</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/component-communication-input-output</guid>
            <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[模板语法与数据绑定：从插值到事件绑定]]></title>
            <description><![CDATA[掌握插值、属性绑定、事件绑定与双向绑定，写出清晰可维护的模板。]]></description>
            <link>http://localhost:3000/Angular/template-and-data-binding</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/template-and-data-binding</guid>
            <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Angular 心智模型：组件、模板与依赖注入是如何协作的]]></title>
            <description><![CDATA[先建立 Angular 的整体认知：组件负责状态与行为，模板负责声明式视图，DI 负责能力组装。]]></description>
            <link>http://localhost:3000/Angular/angular-mental-model</link>
            <guid isPermaLink="true">http://localhost:3000/Angular/angular-mental-model</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React DevTools]]></title>
            <description><![CDATA[React 开发中必须掌握的浏览器调试扩展：看组件树、状态和渲染性能。]]></description>
            <link>http://localhost:3000/React/react-devtools</link>
            <guid isPermaLink="true">http://localhost:3000/React/react-devtools</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useState 懒初始化与函数式更新]]></title>
            <description><![CDATA[什么时候 useState 要传函数？什么时候 setState 要用函数式更新？]]></description>
            <link>http://localhost:3000/React/use-state-lazy-initialization-and-function-updates</link>
            <guid isPermaLink="true">http://localhost:3000/React/use-state-lazy-initialization-and-function-updates</guid>
            <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React 基础：Props vs State]]></title>
            <description><![CDATA[React 中 props 和 state 到底有什么区别？一文讲清输入、内部状态与单向数据流。]]></description>
            <link>http://localhost:3000/React/props-vs-state</link>
            <guid isPermaLink="true">http://localhost:3000/React/props-vs-state</guid>
            <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React 18 并发 UI 模式：用 useTransition 保持交互流畅]]></title>
            <description><![CDATA[了解 React 18 并发更新思路，使用 useTransition 提升输入与筛选场景体验。]]></description>
            <link>http://localhost:3000/React/react-18-concurrent-ui-patterns</link>
            <guid isPermaLink="true">http://localhost:3000/React/react-18-concurrent-ui-patterns</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React DevTools 调试方法：定位渲染与状态问题]]></title>
            <description><![CDATA[使用 React DevTools 分析组件树、状态变化和渲染频率，提升排障效率。]]></description>
            <link>http://localhost:3000/React/react-debugging-with-devtools</link>
            <guid isPermaLink="true">http://localhost:3000/React/react-debugging-with-devtools</guid>
            <pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React 性能与记忆化：减少无效渲染而不牺牲可读性]]></title>
            <description><![CDATA[掌握 React.memo、useMemo、useCallback 的使用边界，优化重渲染热点。]]></description>
            <link>http://localhost:3000/React/react-performance-memoization</link>
            <guid isPermaLink="true">http://localhost:3000/React/react-performance-memoization</guid>
            <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React 异步请求与竞态处理：只渲染最后一次有效结果]]></title>
            <description><![CDATA[处理搜索与筛选场景中的竞态覆盖问题，掌握 cleanup 与请求取消策略。]]></description>
            <link>http://localhost:3000/React/async-fetching-and-race-conditions</link>
            <guid isPermaLink="true">http://localhost:3000/React/async-fetching-and-race-conditions</guid>
            <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Context 与状态共享：跨组件传递不再层层透传]]></title>
            <description><![CDATA[掌握 Context 的适用边界与性能注意点，建立稳定的跨层级状态共享方案。]]></description>
            <link>http://localhost:3000/React/context-and-state-sharing</link>
            <guid isPermaLink="true">http://localhost:3000/React/context-and-state-sharing</guid>
            <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[自定义 Hook：沉淀可复用业务逻辑]]></title>
            <description><![CDATA[学会通过自定义 Hook 复用状态与副作用逻辑，减少复制粘贴和维护分叉。]]></description>
            <link>http://localhost:3000/React/custom-hooks-and-logic-reuse</link>
            <guid isPermaLink="true">http://localhost:3000/React/custom-hooks-and-logic-reuse</guid>
            <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useEffect 依赖管理：避免副作用错乱与旧值闭包]]></title>
            <description><![CDATA[理解 useEffect 执行时机和依赖策略，减少数据请求与订阅场景中的隐性 bug。]]></description>
            <link>http://localhost:3000/React/use-effect-dependency-management</link>
            <guid isPermaLink="true">http://localhost:3000/React/use-effect-dependency-management</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[表单与受控组件：让输入状态可预测]]></title>
            <description><![CDATA[掌握 React 表单管理的核心模式，区分受控和非受控组件的使用边界。]]></description>
            <link>http://localhost:3000/React/forms-and-controlled-components</link>
            <guid isPermaLink="true">http://localhost:3000/React/forms-and-controlled-components</guid>
            <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useState 与更新队列：为什么连续 setState 结果不一样]]></title>
            <description><![CDATA[掌握 React 状态更新队列与函数式更新，避免批处理下的旧值问题。]]></description>
            <link>http://localhost:3000/React/use-state-and-update-queue</link>
            <guid isPermaLink="true">http://localhost:3000/React/use-state-and-update-queue</guid>
            <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Props、State 与单向数据流：React 协作的基本规则]]></title>
            <description><![CDATA[理解 props 和 state 的职责边界，建立稳定的父子通信与状态管理模式。]]></description>
            <link>http://localhost:3000/React/props-state-and-data-flow</link>
            <guid isPermaLink="true">http://localhost:3000/React/props-state-and-data-flow</guid>
            <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[JSX 与组件组合：把页面拆成可协作单元]]></title>
            <description><![CDATA[掌握 JSX 表达能力和组件组合方式，提升页面结构可读性与复用性。]]></description>
            <link>http://localhost:3000/React/jsx-and-component-composition</link>
            <guid isPermaLink="true">http://localhost:3000/React/jsx-and-component-composition</guid>
            <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React 渲染心智模型：状态变化如何驱动界面更新]]></title>
            <description><![CDATA[建立 React 组件渲染的核心认知，理解状态变化、重新渲染和视图同步之间的关系。]]></description>
            <link>http://localhost:3000/React/react-rendering-mental-model</link>
            <guid isPermaLink="true">http://localhost:3000/React/react-rendering-mental-model</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 2 vs Vue 3] 差异与迁移清单：从存量到演进]]></title>
            <description><![CDATA[对比 Vue 2 与 Vue 3 的关键差异，给出可执行迁移路径，降低升级风险。]]></description>
            <link>http://localhost:3000/Vue/vue2-vs-vue3-migration-guide</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/vue2-vs-vue3-migration-guide</guid>
            <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 2] Options API 基础：data、methods、computed、watch]]></title>
            <description><![CDATA[面向仍在维护 Vue 2 项目的同学，系统梳理 Options API 的核心组织方式和常见坑。]]></description>
            <link>http://localhost:3000/Vue/vue2-options-api-fundamentals</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/vue2-options-api-fundamentals</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] Pinia 状态管理基础：共享状态的最小可靠方案]]></title>
            <description><![CDATA[掌握 Pinia 的 state、getter、action 基础模式，构建可追踪、可维护的全局状态层。]]></description>
            <link>http://localhost:3000/Vue/pinia-state-management-basics</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/pinia-state-management-basics</guid>
            <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] Vue Router 路由设计：让页面结构和 URL 对齐]]></title>
            <description><![CDATA[掌握路由配置、动态参数、嵌套路由和导航守卫基础，搭建可扩展页面结构。]]></description>
            <link>http://localhost:3000/Vue/vue-router-route-design-basics</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/vue-router-route-design-basics</guid>
            <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] Composables：复用 Vue 逻辑而不是复制粘贴]]></title>
            <description><![CDATA[学会抽离可复用组合函数，统一加载、错误、分页等高频业务逻辑。]]></description>
            <link>http://localhost:3000/Vue/composables-and-logic-reuse</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/composables-and-logic-reuse</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] 生命周期与 DOM 时机：在正确时间做正确事情]]></title>
            <description><![CDATA[掌握 onMounted、onUpdated、onUnmounted 和 nextTick 的使用边界，避免时机错误。]]></description>
            <link>http://localhost:3000/Vue/lifecycle-and-dom-timing</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/lifecycle-and-dom-timing</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] computed、watch、watchEffect：副作用与派生状态的分工]]></title>
            <description><![CDATA[区分派生状态和副作用逻辑，避免 watch 滥用导致代码难追踪。]]></description>
            <link>http://localhost:3000/Vue/computed-watch-and-watcheffect</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/computed-watch-and-watcheffect</guid>
            <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] Props 与 Emits：建立稳定的组件通信边界]]></title>
            <description><![CDATA[掌握父子组件通信的单向数据流，避免“子改父数据”导致状态混乱。]]></description>
            <link>http://localhost:3000/Vue/props-emits-and-component-communication</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/props-emits-and-component-communication</guid>
            <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] ref 与 reactive：响应式状态到底怎么选]]></title>
            <description><![CDATA[理解 ref 与 reactive 的边界和组合方式，避免响应式失效与解构陷阱。]]></description>
            <link>http://localhost:3000/Vue/reactive-ref-and-reactive</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/reactive-ref-and-reactive</guid>
            <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] 模板语法与指令：把条件、循环和事件写清楚]]></title>
            <description><![CDATA[系统掌握 v-if、v-for、v-model、事件绑定等高频模板能力，避免渲染和交互混乱。]]></description>
            <link>http://localhost:3000/Vue/template-syntax-and-directives</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/template-syntax-and-directives</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] SFC 与 script setup：组件的现代写法]]></title>
            <description><![CDATA[掌握单文件组件和 script setup 的组织方式，写出结构清晰、维护成本低的 Vue 组件。]]></description>
            <link>http://localhost:3000/Vue/sfc-and-script-setup</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/sfc-and-script-setup</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[[Vue 3] 心智模型：从“写页面”到“管理状态变化”]]></title>
            <description><![CDATA[建立 Vue 的核心心智模型，理解声明式渲染与响应式系统如何协同工作。]]></description>
            <link>http://localhost:3000/Vue/vue-3-mental-model</link>
            <guid isPermaLink="true">http://localhost:3000/Vue/vue-3-mental-model</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[数组解构]]></title>
            <description><![CDATA[假设我们有一些数据存储在一个数组中，我们想从数组中取出这些数据并将其赋值给一个变量。 传统上，这是通过索引访问项目，并使用典型的赋值语句为其赋值来实现的： 解构赋值为我们提供了一种更优雅的完成这项任务的方法： 第一次看到的时候， = 前面的那些数组括号看起来很奇怪。 我的理解是这样的：当方括号 用在赋值运算符 = 之后时，它们用于将元素打包到数组中。当它们用]]></description>
            <link>http://localhost:3000/JavaScript/array-destructuring</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/array-destructuring</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[数组迭代方法]]></title>
            <description><![CDATA[大多数模板语言都提供了类似 的自定义语法来帮助你遍历一组数据。而在 Angular 和 Vue 等框架中，则有类似 v-for 指令来管理迭代。 React 并没有提供任何抽象，因此我们将依赖于 JavaScript 语言内置的方法，例如 map 和 filter 方法。 如果我们能够熟练掌握这些核心方法，在 React 中进行迭代开发就会容易得多。在本节中]]></description>
            <link>http://localhost:3000/JavaScript/array-iteration-methods</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/array-iteration-methods</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[箭头函数]]></title>
            <description><![CDATA[在 JavaScript 中，函数历来都是使用 function 关键字编写的： 2015 年，该语言新增了一种创建函数的语法： 箭头函数。 它们的写法如下： 箭头函数的灵感来源于其他函数式编程语言中的 lambda 函数。它们的主要优点是代码更简洁、更清晰。减少“函数冗余”看似微不足道，但对于使用匿名函数来说，却能显著提高代码的可读性。例如： 箭头函数的规]]></description>
            <link>http://localhost:3000/JavaScript/arrow-functions</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/arrow-functions</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[赋值与变化]]></title>
            <description><![CDATA[在 JavaScript 中， const 关键字用于声明常量。常量通常被认为是“不能改变的变量”： 不过奇怪的是，当我使用 const 创建对象时，我可以随意修改它： 我为什么能够更改 person 变量？我使用了 const ! 为了理解这种看似矛盾的现象，我们需要了解赋值和变化之间的区别。这是 JavaScript 的核心概念，当你清楚地理解了这种区别]]></description>
            <link>http://localhost:3000/JavaScript/assignment-vs-mutation</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/assignment-vs-mutation</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[异步与等待]]></title>
            <description><![CDATA[JavaScript 因其棘手的异步代码而臭名昭著。幸运的是，在过去的十年里，它的使用体验已经大大提升！ 工具箱里最新的利器是 async 和 await 这两个关键字。使用它们，我们可以编写出外观和感觉都与我们熟悉且喜爱的同步代码非常相似的异步代码。 假设知识 本课程假设您已熟悉 JavaScript Promise。您可以在 web.dev 上学习有关 ]]></description>
            <link>http://localhost:3000/JavaScript/async-and-await</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/async-and-await</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[fetch网络请求]]></title>
            <description><![CDATA[数据获取是大多数 React 应用的重要组成部分。我们通常有很多数据存储在某个数据库中，需要从 React 应用中检索或更新这些数据。发起网络请求最直接的方法之一就是使用 Fetch。 Fetch 是 Web 平台的内置组件，是笨拙的 的现代化替代品。它允许我们通过网络发出请求。 检索数据 让我们来看一个使用 fetch 的“hello world”示例： ]]></description>
            <link>http://localhost:3000/JavaScript/fetch</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/fetch</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[全局事件]]></title>
            <description><![CDATA[在 React 中，我们可以通过传递属性来监听特定元素上的事件： 这是处理 React 生成的 DOM 元素事件的首选方法。 但是如果我们想监听全局事件呢？例如，窗口对象的滚动事件？为此，我们需要使用原生的 JS 方法 。 举个简单的例子： 接受两个参数： 1、要监听的事件，以字符串形式表示。 2、事件发生时要调用的函数。 我们可以关注很多不同的事件，包括：]]></description>
            <link>http://localhost:3000/JavaScript/global-events</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/global-events</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[HTTP 方法]]></title>
            <description><![CDATA[HTTP 协议实现了一些我们在发出请求时可以使用的“方法”： GET POST PUT PATCH DELETE 每当我们发出网络请求时，我们都会指定它应该使用哪种方法。你可以把它想象成 URL 的一部分；对 的 请求和对 的 请求是不同的“目标”。 这些方法向 API 发出信号，表明我们的请求应该以某种方式处理。 大多数情况下，这些方法都遵循约定俗成的规则]]></description>
            <link>http://localhost:3000/JavaScript/http-methods</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/http-methods</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[HTTP 状态码]]></title>
            <description><![CDATA[当我们收到网络请求的响应时，其中包含一个“状态码”。使用 Fetch API 时，可以通过以下方式访问此值： 状态码是三位数，每个状态码对应一种不同的状态。以下是一些最常见的状态码： 200 — 一切都很顺利！ 401 — 您无权访问此资源 404 — 服务器找不到您请求的资源 500 — 服务器出现意外故障（例如，服务器着火了） 这些状态代码分为 5 大类]]></description>
            <link>http://localhost:3000/JavaScript/http-status-codes</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/http-status-codes</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[与 DOM 交互]]></title>
            <description><![CDATA[使用 React 这类框架的一大好处就是我们不必直接操作 DOM。我们只需告诉 React DOM 应该是什么样子，React 就会负责创建、修改、移动和删除 DOM 节点。在本课中，我们将深入探讨一些最常见的 DOM 操作。]]></description>
            <link>http://localhost:3000/JavaScript/interacting-with-the-dom</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/interacting-with-the-dom</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[间隔和延迟]]></title>
            <description><![CDATA[有时，我们希望按特定时间表运行一段代码。例如，我们可能希望每隔 10 秒“ping”一次服务器，以检查是否有新数据。 我们可以使用 来实现这一点： 第一个参数是一个包含我们要运行的代码的函数。JavaScript 引擎会根据设定的时间间隔，反复调用这个函数。 第二个参数是间隔持续时间，单位为毫秒。在本例中，我们指定了 ，即 10,000 毫秒，也就是 10 ]]></description>
            <link>http://localhost:3000/JavaScript/intervals-and-timeouts</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/intervals-and-timeouts</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[JavaScript 模块]]></title>
            <description><![CDATA[很长一段时间以来，JavaScript 都没有内置的模块系统。 早期，我们用 .js 文件编写 JavaScript 程序，并通过 HTML 文件中的 标签加载它们。这种方法虽然可行，但意味着所有脚本都共享同一个环境；在一个文件中声明的变量可以在另一个文件中访问。这有点混乱。 大约在 2009 年至 2010 年间，出现了一些第三方解决方案。其中最流行的是 ]]></description>
            <link>http://localhost:3000/JavaScript/javaScript-modules</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/javaScript-modules</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[逻辑运算符]]></title>
            <description><![CDATA[如果你使用 JavaScript 已经有一段时间了，你可能已经熟悉了 AND 运算符（ && ）和 OR 运算符（ || ）： 然而，许多 JavaScript 开发人员并没有意识到这些运算符的一点： 它们也可以用作控制流运算符。 让我们通过一道简单的选择题来测试一下你的知识 ： result 的值是什么？ 然而，许多 JavaScript 开发人员并没有意]]></description>
            <link>http://localhost:3000/JavaScript/logical-operators</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/logical-operators</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[对象解构]]></title>
            <description><![CDATA[对象解构提供了一种从对象中提取一些变量的简洁方法。 举个简单的例子： 这实际上与这样做是一样的： 我们可以根据需要选择任意数量的值。 重命名提取的值 请考虑以下情况： 我们尝试将 name 属性解构为一个单独的变量，但遇到了一个问题：已经存在一个名为 name 的变量了！ 在这种情况下，我们可以在解包时重命名值： 默认值 这里有个问题：如果我们尝试从一个未定]]></description>
            <link>http://localhost:3000/JavaScript/object-destructuring</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/object-destructuring</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[属性值简写]]></title>
            <description><![CDATA[现代 JavaScript 中的对象有一个巧妙的小技巧。虽然很小，但如果你不了解它，可能会造成很多困惑。 假设我们有以下代码： 我们正在创建一个 user 对象，它有两个属性： name 和 age 。我们将这两个属性分别赋值给同名变量。 不过，这感觉有点多余，不是吗？我们把 name 分配给 name ，把 age 分配给 age 。 现代 JavaScr]]></description>
            <link>http://localhost:3000/JavaScript/property-value-shorthand</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/property-value-shorthand</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[剩余语法和扩展语法]]></title>
            <description><![CDATA[和 这两个操作都使用相同的语法，即三个点（ ... ）。令人费解的是，它严格来说并不是一个运算符，尽管感觉上它应该就是！为了与正式文献保持一致，我将称其为语法而不是运算符。 浏览器支持 剩余语法和扩展语法都得到了非常好的浏览器支持：所有现代浏览器都支持它们。 如果需要支持旧版浏览器，例如 Internet Explorer 怎么办？只要你使用像 Babel ]]></description>
            <link>http://localhost:3000/JavaScript/rest-vs-spread</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/rest-vs-spread</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[声明 vs 表达式]]></title>
            <description><![CDATA[在使用 React 时，我们可以在 JSX 中使用表达式 ，但不能使用声明 。因此，理解这两者之间的区别至关重要！]]></description>
            <link>http://localhost:3000/JavaScript/statements-vs-expressions</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/statements-vs-expressions</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[字符串插值]]></title>
            <description><![CDATA[在早期版本的 JavaScript 中，如果我们想要动态创建字符串，我们需要使用加法运算符（ + ）： 虽然这样也能用，但有时感觉很笨拙，而且可能会导致错误（例如忘记在 Hello 中加空格）。 现代 JavaScript 允许我们将变量和其他表达式直接嵌入到字符串中： 要使用字符串插值，我们需要使用反引号（ 字符来进行字符串插值呢？ 问题在于向后兼容性。 ]]></description>
            <link>http://localhost:3000/JavaScript/string-interpolation</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/string-interpolation</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[真与假]]></title>
            <description><![CDATA[让我们来看下面这段 JavaScript 语句： 我们有一个用户对象，我们想根据某个条件运行 console.log。该条件是 JavaScript 表达式 user.name 。 有趣的是， user.name 不是一个布尔值。用户名既不是 true 也不是 false 。在许多编程语言中，这都是非法操作。语言如何判断一个随机字符串是否足够呢？ 在 Jav]]></description>
            <link>http://localhost:3000/JavaScript/truthy-and-falsy</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/truthy-and-falsy</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[作品集]]></title>
            <description><![CDATA[在招聘过程中，雇主最想弄清楚的事情之一就是你是否具备完成这项工作所需的技术技能。 你将有机会在技术面试中展示这些技能，但正如我们之前提到的，面试成本很高。雇主通常希望在安排任何事宜之前先了解你的技术能力。 通过作品集，你可以向雇主有力地证明你具备这些技术技能。 作品集是你精心挑选并整理的已完成项目的集合，是你最佳作品的展示。 在你简历上积累了大量相关工作经验]]></description>
            <link>http://localhost:3000/Job/portfolios</link>
            <guid isPermaLink="true">http://localhost:3000/Job/portfolios</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[招聘漏斗]]></title>
            <description><![CDATA[让我们想象一下，你不是在寻找开发人员的工作，而是在寻找招聘开发人员的机会。 假设你在一家中型科技公司 Widgets Inc. 的人力资源部门工作，你的团队需要一位新的前端开发人员。你创建了一个新的职位描述，描述了你正在寻找的技能和特质，并将其发布到网上。 几天后，你查看了招聘信息，发现有 400 人申请了这个职位。 理想情况下， 你应该对每一位候选人进行全]]></description>
            <link>http://localhost:3000/Job/the-hiring-funnel</link>
            <guid isPermaLink="true">http://localhost:3000/Job/the-hiring-funnel</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Babel]]></title>
            <description><![CDATA[Babel 是负责转换的工具。 像你我这样的开发者很少会直接使用 Babel；它通常被 样板代码和元框架 在底层使用。即便如此，从宏观层面了解这些工具如何构建我们的应用程序仍然很有帮助。在这里，我们将探讨 Babel 是什么以及它为何如此必要。 Babel 创建于 2014 年，当时 JavaScript 正处于一次巨大的更新之中，添加了许多很棒的语言特性，]]></description>
            <link>http://localhost:3000/Tools/babel</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/babel</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[样板代码和元框架]]></title>
            <description><![CDATA[在 React 发展的早期，也就是 2015 年，创建一个新的 React 应用并不容易。 我们讨论过的所有工具，例如 ESLint 、 Babel 和 Webpack ，都需要从头开始实现。开发人员需要弄清楚他们到底需要哪些插件，以及如何配置它们。通常，我们需要花费好几天的时间才能真正开始构建应用程序本身！ 解决这个问题的第一个办法是使用样板代码。 样板应]]></description>
            <link>http://localhost:3000/Tools/boilerplates-and-meta-frameworks</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/boilerplates-and-meta-frameworks</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[代码编辑器]]></title>
            <description><![CDATA[我们来聊聊代码编辑器吧！ 目前为止，前端开发人员最常用的编辑器是 Visual Studio Code ，通常缩写为 VS Code。 它是一款跨平台编辑器，可以从其主页下载。 扩展 扩展程序是由社区开发的插件，可以以某种方式扩展编辑器的功能。 以下是我已安装的所有扩展程序的完整列表： Community Material Theme ——一种颜色主题。 P]]></description>
            <link>http://localhost:3000/Tools/code-editor</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/code-editor</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ESLint]]></title>
            <description><![CDATA[ESLint 是一种“代码检查工具”，它可以检查我们的代码并告知我们潜在的问题。 它经常发现与“代码组织”相关的问题。例如，如果某个变量从未被使用，ESLint 会发出警告： 它还可以帮助我们发现潜在的可用性/可访问性问题。例如，如果我们忘记在 React 中为图像标签添加“alt”文本： ESLint 具有高度可配置性。它内置了数十条规则，并支持社区开发的]]></description>
            <link>http://localhost:3000/Tools/eslint</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/eslint</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Node.js 和 NPM]]></title>
            <description><![CDATA[要开始开发本地 React/Vue 项目，最基础的工具是 Node.js 。 这让一些人感到惊讶。Node.js 是一个服务器运行时环境，通常用于构建后端 Web 服务器/API。React 是一个前端框架。我们为什么还需要 Node 呢？ 举个例子，React 应用需要经过编译步骤，将 JSX 转换为纯 JavaScript。这个过程通常使用 Node.j]]></description>
            <link>http://localhost:3000/Tools/node-and-npm</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/node-and-npm</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Prettier格式化]]></title>
            <description><![CDATA[Prettier 是一款 “带有特定规范的代码格式化工具” 。它会重新格式化我们的代码，使其符合社区标准。]]></description>
            <link>http://localhost:3000/Tools/prettier</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/prettier</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[终端]]></title>
            <description><![CDATA[要想成为一名高效的开发人员，你需要熟练使用终端。 例如，要在电脑上开发 React 应用，你需要运行一个本地开发服务器。通常可以通过执行以下终端命令来完成： 令人沮丧的是，大多数教程和文档都假定你已经熟练使用终端。除非你拥有计算机科学背景，或者从上世纪80年代就开始使用电脑，否则这种假设非常不合理！而且，这会极大地打击初学者的积极性。 成为终端高手需要多年的]]></description>
            <link>http://localhost:3000/Tools/the-terminal</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/the-terminal</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Webpack]]></title>
            <description><![CDATA[Webpack 是一个“打包工具”。它是我们用来生成应用程序生产版本的主要工具。 如今，开发者直接配置 Webpack 的情况已经很少见了。通常情况下，我们会使用 Parcel 或 Next.js 之类的工具来帮我们管理。但了解其工作原理仍然很有价值。 例如，你可能会想：如果我们使用 Babel 将 JSX 转换为浏览器友好的 JavaScript，为什么还]]></description>
            <link>http://localhost:3000/Tools/webpack</link>
            <guid isPermaLink="true">http://localhost:3000/Tools/webpack</guid>
            <pubDate>Fri, 15 May 2026 03:04:47 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[DOM 事件委托与清理：高频列表场景的性能与稳定性]]></title>
            <description><![CDATA[通过事件委托减少监听器数量，并建立解绑策略，提升复杂 DOM 场景下的性能和可维护性。]]></description>
            <link>http://localhost:3000/JavaScript/dom-event-delegation-and-cleanup</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/dom-event-delegation-and-cleanup</guid>
            <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[闭包与内存泄漏：高频泄漏模式与清理策略]]></title>
            <description><![CDATA[识别闭包、定时器、事件监听导致的内存泄漏模式，建立可执行的清理规范。]]></description>
            <link>http://localhost:3000/JavaScript/closure-memory-leak-patterns</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/closure-memory-leak-patterns</guid>
            <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[模块加载与动态 import：按需加载不再只靠框架]]></title>
            <description><![CDATA[理解 ESM 依赖图与动态 import 的加载时机，用原生 JavaScript 做到按需拆分和懒加载。]]></description>
            <link>http://localhost:3000/JavaScript/module-loading-and-dynamic-import</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/module-loading-and-dynamic-import</guid>
            <pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[浏览器存储一致性：localStorage、sessionStorage 与同步策略]]></title>
            <description><![CDATA[掌握前端存储边界和一致性策略，避免多标签页数据冲突与过期数据污染。]]></description>
            <link>http://localhost:3000/JavaScript/browser-storage-consistency</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/browser-storage-consistency</guid>
            <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[并发请求与限流：快和稳之间的平衡]]></title>
            <description><![CDATA[理解 Promise.all 并发收益与风险，学会用并发上限控制吞吐，避免接口与浏览器过载。]]></description>
            <link>http://localhost:3000/JavaScript/concurrent-requests-and-limits</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/concurrent-requests-and-limits</guid>
            <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[重试、超时与退避：请求韧性三件套]]></title>
            <description><![CDATA[构建可控的重试策略（超时、指数退避、最大次数），让请求失败可恢复且不过载。]]></description>
            <link>http://localhost:3000/JavaScript/retry-timeout-and-backoff</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/retry-timeout-and-backoff</guid>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[AbortController：取消过期请求，避免竞态覆盖]]></title>
            <description><![CDATA[使用 AbortController 管理请求生命周期，解决搜索联想和页面切换中的过期响应问题。]]></description>
            <link>http://localhost:3000/JavaScript/abort-controller-and-request-cancel</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/abort-controller-and-request-cancel</guid>
            <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Fetch 进阶：请求成功不等于业务成功]]></title>
            <description><![CDATA[建立 fetch 分层错误处理模型，区分网络错误、HTTP 错误与业务错误。]]></description>
            <link>http://localhost:3000/JavaScript/fetch-advanced-and-error-boundary</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/fetch-advanced-and-error-boundary</guid>
            <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[事件循环详解：宏任务、微任务与执行顺序]]></title>
            <description><![CDATA[搞懂 event loop 与任务队列优先级，解释为什么输出顺序常常和直觉不同。]]></description>
            <link>http://localhost:3000/JavaScript/event-loop-microtask-macrotask</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/event-loop-microtask-macrotask</guid>
            <pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[async/await 控制流：把异步写成可维护逻辑]]></title>
            <description><![CDATA[用 async/await 组织串行与并行任务，建立可读、可调试的异步控制流。]]></description>
            <link>http://localhost:3000/JavaScript/async-await-control-flow</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/async-await-control-flow</guid>
            <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Promise 链与错误冒泡：把异步流程串稳]]></title>
            <description><![CDATA[掌握 Promise 链返回规则与错误冒泡机制，避免 then/catch 位置错误造成的隐性异常。]]></description>
            <link>http://localhost:3000/JavaScript/promise-chains-and-error-bubbling</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/promise-chains-and-error-bubbling</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[对象拷贝与不可变更新：避免状态污染的核心技巧]]></title>
            <description><![CDATA[掌握浅拷贝与不可变更新思路，避免对象共享引用导致的连锁修改。]]></description>
            <link>http://localhost:3000/JavaScript/object-copy-and-immutability</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/object-copy-and-immutability</guid>
            <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[基本类型与引用类型：值是怎么被传递的？]]></title>
            <description><![CDATA[分清按值传递与引用共享的行为差异，理解参数传递和对象复制的底层逻辑。]]></description>
            <link>http://localhost:3000/JavaScript/primitive-vs-reference-values</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/primitive-vs-reference-values</guid>
            <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[理解 JavaScript 取模运算符（%）]]></title>
            <description><![CDATA[取模（%）是最容易被误解的运算符之一。本文会从“余数”心智模型出发，并通过可视化示例讲清它在真实开发中的高频用法。]]></description>
            <link>http://localhost:3000/JavaScript/javascript-modulo-operator</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/javascript-modulo-operator</guid>
            <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Set 和 Map 基础：数组和对象之外的两把利器]]></title>
            <description><![CDATA[掌握 Set/Map 的使用场景，提升去重、索引和键值管理效率。]]></description>
            <link>http://localhost:3000/JavaScript/set-and-map-fundamentals</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/set-and-map-fundamentals</guid>
            <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[数组排序与比较器：写出稳定可控的 sort 逻辑]]></title>
            <description><![CDATA[掌握 JavaScript 排序比较器写法，避免字符串排序陷阱和不稳定结果。]]></description>
            <link>http://localhost:3000/JavaScript/array-sort-and-compare</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/array-sort-and-compare</guid>
            <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[reduce 常见模式：求和、分组、去重一次掌握]]></title>
            <description><![CDATA[从实战角度理解 reduce，用统一模型解决聚合类数组问题。]]></description>
            <link>http://localhost:3000/JavaScript/common-array-reduce-patterns</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/common-array-reduce-patterns</guid>
            <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[try...catch 实战：让 JavaScript 错误处理可控]]></title>
            <description><![CDATA[掌握同步/异步场景下的错误处理策略，避免吞错和不可追踪异常。]]></description>
            <link>http://localhost:3000/JavaScript/error-handling-with-try-catch</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/error-handling-with-try-catch</guid>
            <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[JavaScript 条件判断防御式写法]]></title>
            <description><![CDATA[从“能跑”升级到“稳定可维护”，用防御式条件判断减少线上异常。]]></description>
            <link>http://localhost:3000/JavaScript/defensive-conditions-in-js</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/defensive-conditions-in-js</guid>
            <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[写出可读函数：参数、命名与返回值设计]]></title>
            <description><![CDATA[从函数设计层面提升代码可维护性，让业务逻辑更容易理解和重构。]]></description>
            <link>http://localhost:3000/JavaScript/writing-readable-functions</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/writing-readable-functions</guid>
            <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[== 和 === 到底怎么选？]]></title>
            <description><![CDATA[理解宽松相等与严格相等的差异，避免类型转换带来的隐蔽判断 bug。]]></description>
            <link>http://localhost:3000/JavaScript/strict-equality-and-type-conversion</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/strict-equality-and-type-conversion</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[性能预算与回归治理：把优化变成团队机制]]></title>
            <description><![CDATA[把性能预算和验收流程接入 CI，减少版本迭代中的性能回退。]]></description>
            <link>http://localhost:3000/Performance/performance-ci-budget-and-regression-control</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-ci-budget-and-regression-control</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[图片与 LCP 优化：把首屏大图变成优势项]]></title>
            <description><![CDATA[通过图片尺寸、格式与加载策略优化 LCP，避免首屏慢和布局抖动。]]></description>
            <link>http://localhost:3000/Performance/performance-images-and-lcp-optimization</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-images-and-lcp-optimization</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[列表渲染策略：虚拟化、分页与按需渲染]]></title>
            <description><![CDATA[在大列表场景下控制 DOM 节点数量，提升首屏速度与滚动流畅度。]]></description>
            <link>http://localhost:3000/Performance/performance-list-virtualization-strategy</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-list-virtualization-strategy</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[主线程与长任务治理：减少卡顿的第一现场]]></title>
            <description><![CDATA[识别并拆分超过 50ms 的长任务，优先保障输入、点击和滚动流畅度。]]></description>
            <link>http://localhost:3000/Performance/performance-main-thread-and-long-tasks</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-main-thread-and-long-tasks</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[性能指标与基线：先测量再优化]]></title>
            <description><![CDATA[建立 LCP、INP、CLS 的最小观测体系，用数据而不是体感驱动性能改进。]]></description>
            <link>http://localhost:3000/Performance/performance-metrics-baseline</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-metrics-baseline</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[资源预算与代码分割：把首屏体积压到可控范围]]></title>
            <description><![CDATA[用资源预算约束首屏体积，并通过动态加载降低初始 JS 成本。]]></description>
            <link>http://localhost:3000/Performance/performance-resource-budget-and-code-splitting</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/performance-resource-budget-and-code-splitting</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[性能调优总览：学习目标与路线]]></title>
            <description><![CDATA[先建立性能调优的学习路线与交付标准，再进入各专题做实操优化。]]></description>
            <link>http://localhost:3000/Performance/stage-7-performance-tuning</link>
            <guid isPermaLink="true">http://localhost:3000/Performance/stage-7-performance-tuning</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[变量作用域与提升：var、let、const 的真实差异]]></title>
            <description><![CDATA[理解作用域与变量提升机制，避免初始化时机错误带来的隐蔽 bug。]]></description>
            <link>http://localhost:3000/JavaScript/variable-scope-and-hoisting</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/variable-scope-and-hoisting</guid>
            <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[为什么 Promise 没有 cancel？]]></title>
            <description><![CDATA[从规范设计看 JavaScript 的抽象哲学]]></description>
            <link>http://localhost:3000/JavaScript/why-promise-no-cancel</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/why-promise-no-cancel</guid>
            <pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Demystifying JavaScript Closures]]></title>
            <description><![CDATA[Closures, a core concept in JavaScript, can seem cryptic and challenging to grasp. This post delves into the world of JavaScript closures, unraveling their intricacies and shedding light on their power in managing scope and preserving data across function executions.]]></description>
            <link>http://localhost:3000/JavaScript/javascript-closures</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/javascript-closures</guid>
            <pubDate>Sat, 02 Sep 2023 16:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[A Deep Dive into the CSS font-size Property]]></title>
            <description><![CDATA[Typography is a fundamental aspect of any web page's design, shaping not only readability but also a site's overall personality. At the heart of this process is the CSS font-size property - a simple, yet incredibly versatile, tool that influences the visual hierarchy of our content.]]></description>
            <link>http://localhost:3000/JavaScript/css-font-size</link>
            <guid isPermaLink="true">http://localhost:3000/JavaScript/css-font-size</guid>
            <pubDate>Tue, 11 Jul 2023 16:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>