本文为「AI Agent 技术系列」第 3 篇。Function Calling(第 2 篇)解决了”模型如何决定调用工具”,MCP 解决”工具如何被标准化接入”。

2026-07-29 重要更新:MCP 官方于 2026-07-28 发布了新版规范 [1][2]。这次改动很大——协议核心从”双向有状态”转为”请求/响应无状态”,核心维护者称其为远程 MCP 上线以来最重要的一次发布。本文已按新协议全面重写,并保留新旧协议对比,方便已有实现的读者评估迁移。

阅读全文 »

Rax 是淘宝出品的一个多端开发框架,语法层面以 React 为标准,支持 Hooks、Context 等 80% 以上的 React API。它最大的特点是”双引擎”——同时支持编译时和运行时两种方案,而且允许在同一个项目里混用:默认走运行时保证开发效率,局部高性能场景(如长列表)用编译时组件做优化。

这篇文章以 Rax 为主线,覆盖从项目搭建、组件编写、状态管理、到小程序原生能力接入的全流程。如果你已经有 React 基础,这篇文章能帮你快速把 Rax 用起来。

阅读全文 »

小程序开发有一个”行业特产”的痛点:同一个业务要在微信、支付宝、百度等多个平台上线,每个平台有自己的 DSL、自己的 API、自己的组件体系。如果每个平台写一套代码,维护成本直接乘以 N。

跨端框架试图解决这个问题——用一套 DSL(通常是 React 或 Vue 语法)写代码,编译或运行时转换为各平台的小程序代码。这篇文章从行业小程序的差异对比开始,然后拆解编译时(Rax compile)和运行时(Rax runtime + kbone)两种方案的原理。

阅读全文 »

小程序页面本质上是网页——HTML、CSS、JS 的技术栈和 Web 开发完全一致。区别只有两点:不支持浏览器 API,只能用宿主 App(微信、支付宝等)提供的 API;运行在 App 内部的 WebView 容器中,受双线程模型约束。

这篇文章从微信小程序的双线程架构讲起,覆盖原生框架的核心机制(数据驱动、事件系统、运行机制),然后对比增强型框架和编译时/运行时转换类框架的思路差异。

阅读全文 »

目标

  1. 使用 RollupTypeScript 构建三个工具包,分别为:仅支持浏览器环境(使用了 BOM、DOM)、仅支持 nodejs 环境(使用了 nodejs API)、纯 JavaScript 环境;
  2. 自动生成 *.d.ts 文件,使用 @microsoft/api-documenter、 @microsoft/api-extractor 生成 API Doc;
  3. 加入 Jest 测试工具,测试覆盖率达标后方可发包;
  4. 使用 Lerna 进行多 package 管理与 npm 发布。
阅读全文 »

2019 年我第一次在生产项目里用 React Native,当时的版本还是 0.59,光是环境搭建就花了两天。现在 RN 已经迭代到了新架构(Fabric + TurboModules + JSI),底层的 Bridge 通信模型被彻底替换,但核心的设计思路——“Learn once, write anywhere”——一直没变。

这篇文章从移动端跨平台方案的演进讲起,然后拆解 RN 的原理,最后给一个自定义 Renderer 的最小实现,帮你理解 React 是怎么把自己”嫁接”到不同平台上的。

阅读全文 »

用了几年 react-router,从 v4 的动态路由到 v6 的嵌套路由,API 变了好几轮。但翻开源码会发现,不管外层怎么变,核心机制始终是三件事:监听 URL 变化、匹配路由表、渲染对应组件。

这篇文章从 v6 的用法讲起,然后拆解 BrowserRouterRouteshistory 库的源码链路,最后对比 react-router 和 vue-router 在实现上的关键差异——如果你需要在一个项目里同时用这两个框架,这些差异值得提前知道。

阅读全文 »

团队开始写第二个项目的时候,组件库的需求会自然冒出来——“这个按钮上个项目写过,拷过来”、”那个表单校验逻辑别重新写了”。拷来拷去几次之后,你意识到需要一个正经的组件库了。

但”写一个组件库”和”写一个好用的组件库”之间的差距,比想象中大得多。除了把组件写出来,你还需要处理文档、构建、测试、版本管理、代码规范——每一件事单独看都不难,放在一起就是一套工程体系。

这篇文章梳理的是我搭建一个 React 组件库时踩过的坑和最终沉淀下来的选型。

阅读全文 »
0%