<?xml version="1.0" encoding="utf-8"?>
<!--  RSS generated by phpcms.cn RSS Builder [2026-05-04 05:09:58]  --> 
<rss version="2.0" xmlns:im="http://purl.org/rss/1.0/item-images/" xmlns:dc="http://purl.org/dc/elements/1.1/" >
<channel>
<pubDate>Mon, 04 May 2026 05:09:58 +0800</pubDate>
<lastBuildDate>Mon, 04 May 2026 05:09:58 +0800</lastBuildDate>
<docs>https://www.zhoulujun.cn</docs>
<description>前端</description>
<link>https://www.zhoulujun.cn</link>
<title>webfront</title>
<image>
<title>webfront</title>
<url><![CDATA[]]></url>
<link>https://www.zhoulujun.cn</link>
<description>前端</description>
</image>
<webMaster>https://www.zhoulujun.cn</webMaster>
<generator>https://www.zhoulujun.cn</generator>
<ttl>60</ttl>
<dc:creator>https://www.zhoulujun.cn</dc:creator>
<dc:date>Mon, 04 May 2026 05:09:58 +0800</dc:date>
<item>
<title><![CDATA[AntV G2理念：的空间通道与非空间通道、编码映射与图例配置]]></title>
<link><![CDATA[/html/webfront/visualization/charts/9725.html]]></link>
<description><![CDATA[我为什么从echarts叛变到antV G2，是因为我被其洗脑：有被称为可视化圣经的《The Grammar of Graphics》作理论支撑，将可视化理论与web   ]]></description>
<pubDate>2025-12-20 21:48:26</pubDate>
<guid><![CDATA[/html/webfront/visualization/charts/9725.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[AntV G2 的 transform.fold（宽表 → 窄表转换）]]></title>
<link><![CDATA[/html/webfront/visualization/charts/9713.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/12/thumb_150_150_20251211171906576527012.png border='0' /><br />数据库层面：什么是窄表？什么是宽表？在数据库中，窄表和宽表是两种设计思想，分别指的是列数少或者列数多的表格。窄表是指只包含少量列（   ]]></description>
<pubDate>2025-12-11 17:16:25</pubDate>
<guid><![CDATA[/html/webfront/visualization/charts/9713.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[数据可视化BI宽表到窄表转换方案探索：如AntV G2 transform.fold ]]></title>
<link><![CDATA[/html/webfront/visualization/rudiment/9712.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/12/thumb_150_150_20251211171906576527012.png border='0' /><br />我们一般直接slelect * form xx_table 查询出来直接表格展示没有问题，但是希望用折线图、柱状图等图表形式展示，就需要转换。当然，我们用UNION ALL VALUES  去改变输出，但是如果纯前端呢？用图表数据集自带的transform也是方式之一]]></description>
<pubDate>2025-12-11 17:25:47</pubDate>
<guid><![CDATA[/html/webfront/visualization/rudiment/9712.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[DI框架的依赖解析本质：从JavaSpring到NestJS看DI实践]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9705.html]]></link>
<description><![CDATA[几乎所有现代框架（Spring Boot、ASP NET Core、NestJS、Laravel、Quarkus、Micronaut 等）都把 DI 作为一等公民，正是因为它是从根本上提升软件可维护性的基石。“不要在类内部创建依赖，而是让外部把依赖传进来”。]]></description>
<pubDate>2025-12-05 15:59:43</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9705.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[Nestjs AOP：adapters decorators filters guards intercreptors pipes]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9704.html]]></link>
<description><![CDATA[<img src=https://www.zhoulujun.cn/uploadfile/images/2025/12/20251204185053534625274.png border='0' /><br />NestJS 的架构本质：基于 AOP（面向切面编程）和依赖注入，通过 &ldquo;关注点分离&rdquo; 构建分层、可扩展的服务端框架。这些组件围绕HTTP 请   ]]></description>
<pubDate>2025-12-03 17:27:34</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9704.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[Chrome devtool请求API替换,charles与fiddler不香了？]]></title>
<link><![CDATA[/html/webfront/browser/webkit/2025_1011_9659.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/10/thumb_150_150_20251011194253966331129.jpg border='0' /><br />我们产品上线，发想的bug，希望在本地调试，如果直接导入数据来测试，肯定很烦！所以我们一般直接替换接口或者做接口映射来调试，特别是前   ]]></description>
<pubDate>2025-10-11 19:40:05</pubDate>
<guid><![CDATA[/html/webfront/browser/webkit/2025_1011_9659.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[对比react-beautiful-dnd,react-sortable-hoc,react-dnd,pragmatic-drag-and-drop]]></title>
<link><![CDATA[/html/webfront/ECMAScript/js/2025_0921_9639.html]]></link>
<description><![CDATA[就我个人而已，更加喜欢dnd-kit，因为现代化设计，灵活性第一。支持移动端，交互可以完全定制。但是，作为企业级的@atlaskit pragmatic-drag-and-drop（Atlassian 新一代拖拽方案，替代 react-beautiful-dnd）
]]></description>
<pubDate>2025-09-21 22:12:56</pubDate>
<guid><![CDATA[/html/webfront/ECMAScript/js/2025_0921_9639.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[typescript从类型推断到类型断言、类型守卫]]></title>
<link><![CDATA[/html/webfront/ECMAScript/typescript/2020_0212_9539.html]]></link>
<description><![CDATA[TS类型魔法类型推断：类型推断就是TypeScript会根据上下文自动帮我们推算出变量或方法的类型，比如：letflag;  推断为any类型断言：有些情   ]]></description>
<pubDate>2020-02-12 10:52:00</pubDate>
<guid><![CDATA[/html/webfront/ECMAScript/typescript/2020_0212_9539.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[nestjs基于Fastify平台，接入JWT用户登录认证避坑指北]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9538.html]]></link>
<description><![CDATA[nestjs常用的passport是基于express 框架，]]></description>
<pubDate>2025-04-14 09:53:22</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9538.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[mysql主键id/uid抉择：从 UUID 到 UUIDv7演化之路]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9537.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/04/thumb_150_150_20250412161049161469200.jpg border='0' /><br />直接让id主键存储 uid 字符串，或者 使用直接把id 改为uid，是否ok呢？user_auto_key,user_uuid,user_random_key 又有何区别呢？]]></description>
<pubDate>2022-02-25 13:22:00</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9537.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[nestjs如实连接mysql，并使用TypeORM]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9536.html]]></link>
<description><![CDATA[nestjs使用msyql案例与nestjs使用TypeORM连接mysql使用案例，参考配置]]></description>
<pubDate>2025-04-11 14:46:39</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9536.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[nestjs使用swagger生成文档：装饰器使用总结]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9535.html]]></link>
<description><![CDATA[swagg使用起来很简单constapp=awaitNestFactory create&lt;NestFastifyApplication&gt;(AppModule,newFastifyAdapter(),);constconfig=newDocumen   ]]></description>
<pubDate>2022-02-22 14:38:00</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9535.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[class-transformer用法/装饰器总结]]></title>
<link><![CDATA[/html/webfront/server/nestjs/9534.html]]></link>
<description><![CDATA[默认情况（无特殊配置）：不加 @Expose，属性默认会返回给前端，除非显式用 @Exclude 排除！启用 excludeExtraneousValues: true 时：必须加 @Expose，否则属性不会返回给前端。]]></description>
<pubDate>2022-02-17 14:18:00</pubDate>
<guid><![CDATA[/html/webfront/server/nestjs/9534.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[react18/19渲染优化]]></title>
<link><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0313_9518.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/03/thumb_150_150_20250313153642304129986.png border='0' /><br />草稿中&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;参考文章：【React Hooks原理 - useTransition】 https:  blog csdn net weixin_44273311 article details 14071862   ]]></description>
<pubDate>2025-03-13 11:39:51</pubDate>
<guid><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0313_9518.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[react19走起！无Signal，坚守不可变数据与单向数据流！]]></title>
<link><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0303_9507.html]]></link>
<description><![CDATA[<img src=/uploadfile/images/2025/03/thumb_150_150_20250310181128853369076.png border='0' /><br />React推崇的是不可变数据和单向数据流，强调组件的纯函数特性，这样虽然可能在性能上有损耗，但代码更可预测，易于调试。​react坚守 不可变数据与单向数据流，核心在于 调试和并发渲染！
]]></description>
<pubDate>2025-03-03 09:40:57</pubDate>
<guid><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0303_9507.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[Remix全栈框架React Router v7]]></title>
<link><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0227_9499.html]]></link>
<description><![CDATA[React 18 引入了并发渲染（Concurrent Rendering），这一特性极大地提升了应用的性能和用户体验。然而，React 18 也带来了许多新的挑   ]]></description>
<pubDate>2025-02-27 09:32:40</pubDate>
<guid><![CDATA[/html/webfront/ECMAScript/jsBase/2025_0227_9499.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[puppeteer生成pdf文件分页如何优化：css page-break]]></title>
<link><![CDATA[/html/webfront/browser/Puppeteer/9491.html]]></link>
<description><![CDATA[用puppeteer将html文件转成pdf，生成文件分页不尽人意，甚至但直接从一行文本中间分开，如何优化呢？很多时候，我希望分页有我自己的控制，   ]]></description>
<pubDate>2021-09-24 17:20:00</pubDate>
<guid><![CDATA[/html/webfront/browser/Puppeteer/9491.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[敏捷项目管理框架Scrum:对比TSP角色和职责]]></title>
<link><![CDATA[/html/webfront/engineer/Architecture/9490.html]]></link>
<description><![CDATA[如今在神州，普通宣传敏捷开发，具体参看《开发模型的理解：瀑布模型 增量式 迭代 敏捷开发&mdash;&mdash;笔记》scrum团队管理Scrum 采用最多（自认   ]]></description>
<pubDate>2023-05-17 16:46:00</pubDate>
<guid><![CDATA[/html/webfront/engineer/Architecture/9490.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[Puppeteer截图/生成PDF乱码：alpine linux中文字体如何解决？]]></title>
<link><![CDATA[/html/webfront/browser/Puppeteer/9457.html]]></link>
<description><![CDATA[Puppeteer在生成PDF与截图的时候，发现中文全身乱码。中文好了，繁体是乱码是因为linux上，默认没有中文字体支持，特别是像alpine这种魔改   ]]></description>
<pubDate>2025-01-26 17:07:19</pubDate>
<guid><![CDATA[/html/webfront/browser/Puppeteer/9457.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
<item>
<title><![CDATA[Puppeteer set LocalStorage/SessionStorage]]></title>
<link><![CDATA[/html/webfront/browser/Puppeteer/9456.html]]></link>
<description><![CDATA[Puppeteer设置cookie 有官方的方法，参考《Puppeteer setCookie设置踩坑》但是，我们现在很多设置在localstorage与sessionstorage里面，   ]]></description>
<pubDate>2025-01-26 16:04:05</pubDate>
<guid><![CDATA[/html/webfront/browser/Puppeteer/9456.html]]></guid>
<author>https://www.zhoulujun.cn</author>
</item>
</channel>
</rss>
