<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaofeichaichai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaofeichaichai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaofeichaichai]]></copyright><item><title><![CDATA[NestJS 实战：团队上下文、RBAC 与权限码校验]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162972601</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162972601</guid><author>xiaofeichaichai</author><pubDate>Fri, 17 Jul 2026 16:17:01 +0800</pubDate><description><![CDATA[本文结合真实多团队 CRM 项目，讲解 TeamGuard、PermissionGuard、自定义权限装饰器、角色权限与用户直授权限、管理员和团队创建者、权限码层级、数据范围、权限缓存与审计日志的完整授权链路。]]></description><category></category></item><item><title><![CDATA[NestJS 实战：JWT 登录认证、Token 刷新与安全退出]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162972559</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162972559</guid><author>xiaofeichaichai</author><pubDate>Fri, 17 Jul 2026 16:15:14 +0800</pubDate><description><![CDATA[本文结合真实 NestJS CRM / SaaS 项目，完整梳理手机号或邮箱登录、密码哈希校验、登录失败锁定、Access Token 与 Refresh Token、Redis 单次轮换、JWT Strategy、双系统密钥和退出登录黑名单等认证实践。]]></description><category></category></item><item><title><![CDATA[NestJS 实战：基于 TypeORM 的客户 CRUD、分页与筛选]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162931951</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162931951</guid><author>xiaofeichaichai</author><pubDate>Thu, 16 Jul 2026 11:54:23 +0800</pubDate><description><![CDATA[本文结合真实 NestJS CRM 项目的 customer 模块，完整梳理客户 CRUD、DTO 参数校验、TypeORM Repository、QueryBuilder、分页筛选、团队数据隔离、软删除和事务设计，帮助你搭建可迁移的中后台业务模块。]]></description><category></category></item><item><title><![CDATA[NestJS 实战：TypeORM、MySQL 与数据库模块设计]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162931790</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162931790</guid><author>xiaofeichaichai</author><pubDate>Thu, 16 Jul 2026 11:49:57 +0800</pubDate><description><![CDATA[本文结合真实 NestJS CRM / SaaS 项目，梳理 TypeORM、MySQL、DatabaseModule、Entity、Repository、QueryBuilder 和 Migration 的职责与协作方式，重点讲解分页筛选、参数绑定、数据库安全和生产环境迁移实践。]]></description><category></category></item><item><title><![CDATA[NestJS 实战：全局 Pipe、Guard、Interceptor 与异常处理链路]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162907849</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162907849</guid><author>xiaofeichaichai</author><pubDate>Wed, 15 Jul 2026 15:43:34 +0800</pubDate><description><![CDATA[本文结合真实 CRM / SaaS NestJS 项目，拆解 main.ts 中的全局 Pipe、Guard、Interceptor 和 Exception Filter，讲清参数转换、DTO 校验、JWT 认证、权限判断、统一响应与异常处理的完整请求链路，并通过客户列表接口说明各层职责。]]></description><category></category></item><item><title><![CDATA[NestJS 实战：从 main.ts 到业务模块，梳理真实项目整体架构]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162906793</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162906793</guid><author>xiaofeichaichai</author><pubDate>Wed, 15 Jul 2026 15:13:57 +0800</pubDate><description><![CDATA[本文结合真实 CRM / SaaS NestJS 项目，梳理从 main.ts、AppModule 到 common、database、crm、saas 业务模块的整体架构，重点讲解全局 Pipe、Guard、Interceptor、Filter、JWT 权限和 TypeORM 请求链路，帮助读者建立阅读和维护 NestJS 项目的方法。]]></description><category></category></item><item><title><![CDATA[动态路由与按钮权限]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162869034</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162869034</guid><author>xiaofeichaichai</author><pubDate>Tue, 14 Jul 2026 11:48:27 +0800</pubDate><description><![CDATA[本篇围绕 Vue 3 中后台项目的权限链路展开，从页面、菜单、按钮三层权限出发，讲解动态路由过滤、router.addRoute 注入、刷新恢复、菜单映射，以及 hasAuth 与 v-permission 的选型，并明确前端权限与后端安全校验的边界。]]></description><category></category></item><item><title><![CDATA[中后台架构与目录规范]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162866755</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162866755</guid><author>xiaofeichaichai</author><pubDate>Tue, 14 Jul 2026 11:11:49 +0800</pubDate><description><![CDATA[很多人学完 Vue 3、Pinia、Vue Router、axios 封装后，单个知识点都懂，但一进中后台项目还是会迷路：页面代码放哪、路由模块在哪拆、接口文件怎么找、公共组件和业务组件该怎么分。本篇聚焦中后台 Vue 3 项目的基础架构与目录规范一个中后台项目最常见的目录划分方式Layout、路由模块、请求层应该如何协作新人接手项目时，怎样最快定位到页面代码核心原则：中后台架构首先要解决“好找、好改、好扩展”目录主线views/api/按业务域拆，hooks/stores/按能力拆。]]></description><category></category></item><item><title><![CDATA[构建优化与部署]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162736320</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162736320</guid><author>xiaofeichaichai</author><pubDate>Thu, 09 Jul 2026 17:46:18 +0800</pubDate><description><![CDATA[本文围绕 Vite 项目的生产构建与上线流程展开，系统讲解了 build 配置、 manualChunks 分包策略、首屏体积排查、gzip 与 brotli 压缩、 vite preview 本地验包，以及 Nginx 静态部署和 History 路由回退配置。通过一条完整的构建到发布链路，帮助你理解前端工程优化不只是“调配置”，更是资源体积、缓存策略、部署稳定性和 CI 流程的整体协同。]]></description><category></category></item><item><title><![CDATA[插件体系与常用插件]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162703419</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162703419</guid><author>xiaofeichaichai</author><pubDate>Wed, 08 Jul 2026 17:48:46 +0800</pubDate><description><![CDATA[本文围绕 Vite 的插件体系展开，系统讲解了 Vite 插件与 Rollup 插件的关系，以及 resolveId 、 load 、 transform 、 transformIndexHtml 、 configureServer 等常见钩子的职责。结合 Vue 项目里常用的官方与社区插件、自定义插件示例和自动导入原理，帮助你理解插件到底能做什么，以及在实际工程里该如何合理使用。]]></description><category></category></item><item><title><![CDATA[Vite配置实战]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162703384</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162703384</guid><author>xiaofeichaichai</author><pubDate>Wed, 08 Jul 2026 17:47:29 +0800</pubDate><description><![CDATA[本文围绕 Vite 项目里的常见配置展开，系统讲解了 vite.config.ts 的组织方式，以及别名、开发代理、环境变量、 base 公共路径和 CSS 配置的实际写法。通过一套可直接复用的配置示例，帮助你理解这些配置各自解决什么问题，以及在多环境开发、接口联调和项目部署中最容易踩到哪些坑。]]></description><category></category></item><item><title><![CDATA[Vite原理与Webpack对比]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162670235</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162670235</guid><author>xiaofeichaichai</author><pubDate>Tue, 07 Jul 2026 17:02:21 +0800</pubDate><description><![CDATA[本文围绕 Vite 与 Webpack 的核心差异展开，重点说明 Vite 在开发环境下为何能依靠原生 ESM、按需编译和依赖预构建获得更快的启动与 HMR 体验，同时解释其生产环境仍使用 Rollup 打包的原因。文章也对比了两者在配置思路、适用场景和工程价值上的区别，帮助你建立更清晰的选型判断。]]></description><category></category></item><item><title><![CDATA[API层类型与TS常见踩坑]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162669987</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162669987</guid><author>xiaofeichaichai</author><pubDate>Tue, 07 Jul 2026 16:54:17 +0800</pubDate><description><![CDATA[本文聚焦Vue3项目API层TS开发高频痛点，讲解接口类型规范化搭建方案。详细介绍统一响应体、Axios泛型封装、unknown安全收窄等实战用法，厘清null、可选字段、类型断言的使用误区，提供新旧代码混用的渐进治理方案，汇总常见报错与面试考点，帮助开发者搭建安全、规范、可维护的接口类型体系。]]></description><category></category></item><item><title><![CDATA[Composables 与 Pinia 类型]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162540518</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162540518</guid><author>xiaofeichaichai</author><pubDate>Fri, 03 Jul 2026 09:58:46 +0800</pubDate><description><![CDATA[Composable 与 Pinia 的 TypeScript 类型设计。文章涵盖 composable 返回值显式声明与 ReturnType、Pinia Options/Setup Store 写法、actions 参数类型，以及 storeToRefs 只转换 state/getters 为 Ref、actions 需从 store 实例解构。重点说明 storeToRefs 不含 actions，以及 declare module 为无类型第三方库补声明。]]></description><category></category></item><item><title><![CDATA[泛型与工具类型在 Vue 中的应用]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162540457</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162540457</guid><author>xiaofeichaichai</author><pubDate>Fri, 03 Jul 2026 09:57:43 +0800</pubDate><description><![CDATA[聚焦 Vue 3 项目中的泛型实战。文章涵盖 composable 泛型（useFetch、usePagination）、ApiResponse/PageResult 统一接口类型，以及 Partial/Pick/Omit/Record/ReturnType 在编辑表单、表格列、状态映射中的用法，并介绍 TableColumn<Row> 与 generic 组件。重点说明泛型 T 用 extends 约束的场景，以及手写 Partial、Pick 的思路。]]></description><category></category></item><item><title><![CDATA[组件类型-Props-Emits-Ref]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162524924</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162524924</guid><author>xiaofeichaichai</author><pubDate>Thu, 02 Jul 2026 17:17:02 +0800</pubDate><description><![CDATA[TS + Vue 3 系列开篇，介绍 Vue 3 项目使用 TypeScript 的原因，以及基础类型、类型推断与联合类型、any/unknown/never 的区别。文章涵盖 Vue + Vite 的 tsconfig 核心配置、路径别名与 env.d.ts，以及 Volar 与 vue-tsc 的分工。重点说明 strict 建议开启、paths 需与 vite alias 对齐，以及 vite build 不自带类型检查。]]></description><category></category></item><item><title><![CDATA[TS 快速入门与 Vue 项目配置]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162524147</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162524147</guid><author>xiaofeichaichai</author><pubDate>Thu, 02 Jul 2026 16:43:31 +0800</pubDate><description><![CDATA[TS + Vue 3 系列开篇，介绍 Vue 3 项目使用 TypeScript 的原因，以及基础类型、类型推断与联合类型、any/unknown/never 的区别。文章涵盖 Vue + Vite 的 tsconfig 核心配置、路径别名与 env.d.ts，以及 Volar 与 vue-tsc 的分工。重点说明 strict 建议开启、paths 需与 vite alias 对齐，以及 vite build 不自带类型检查。]]></description><category></category></item><item><title><![CDATA[Vue 服务端渲染 SSR]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162414203</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162414203</guid><author>xiaofeichaichai</author><pubDate>Mon, 29 Jun 2026 11:51:20 +0800</pubDate><description><![CDATA[SSR 在服务端将 Vue 渲染为 HTML，提升首屏与 SEO，客户端再通过 Hydration 激活为可交互应用。文章涵盖 SSR/CSR/SSG 对比、renderToString 与 Hydration 流程、状态脱水/注水（__INITIAL_STATE__）、Streaming SSR 及 Nuxt 3 简介。重点说明 onMounted 仅在客户端执行、SSR 中不可直接使用 window/document，以及 Hydration 不匹配会导致警告与交互异常。]]></description><category></category></item><item><title><![CDATA[Vue 性能优化策略]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162411342</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162411342</guid><author>xiaofeichaichai</author><pubDate>Mon, 29 Jun 2026 10:59:37 +0800</pubDate><description><![CDATA[从渲染、响应式、代码、测量四个层面梳理 Vue 性能优化。文章涵盖 v-once/v-memo、shallowRef/markRaw、虚拟滚动、路由与组件懒加载及 Tree-shaking，并强调先测量再优化。重点对比 v-memo 与 computed 的分工，以及 shallowRef 仅在 .value 整体替换时触发更新、深层属性变化不会自动更新。]]></description><category></category></item><item><title><![CDATA[Vue 3 Composition API 深入]]></title><link>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162360569</link><guid>https://blog.youkuaiyun.com/xiaofeichaichai/article/details/162360569</guid><author>xiaofeichaichai</author><pubDate>Sun, 28 Jun 2026 09:15:00 +0800</pubDate><description><![CDATA[从语法与机制层面深入 Composition API。文章涵盖 setup 函数与 script setup 语法糖、编译器宏（defineProps/defineEmits/defineExpose/defineOptions/defineModel）及使用限制，setup 中无 this 的替代方式，以及 reactive/props 解构失去响应性时用 toRefs 解决。重点说明 script setup 顶层自动暴露、编译器宏须在顶层同步调用，以及 getCurrentInstance 仅适合底层]]></description><category></category></item></channel></rss>