SuperAPI AI 工具集

cometchat-react-router-patterns

前端与建站

查看项目

更新于 10-16 09:52

技能介绍

用途:指导在 React Router 项目中集成 CometChat React UI Kit v6(依赖 @cometchat/chat-uikit-react@^6 与 @cometchat/calls-sdk-javascript@^5)。资料将 React Router 分为两种模式:v6 库模式(Vite/CRA 中的路由库,无 SSR,较简单)与 v7 框架模式(含文件系统路由、loader/action 与 SSR,需处理与 Next.js 类似的 SSR 问题)。建议先阅读 cometchat-core、cometchat-components、cometchat-placement 三个配套技能。

主要能力与用法:

  1. 项目识别:用 grep -E '"react-router-dom"|"react-router"' package.json 检查依赖;用 ls react-router.config.ts react-router.config.js 判断 v7 框架模式;用 createRouter/BrowserRouter/Routes 源码判断 v6 库模式。仅有 react-router 而无配置文件时按 v6 库模式处理。
  2. v6 库模式:将 CometChatProvider 包裹在 RouterProvider 外层,用 createBrowserRouter 或 <Routes>/<Route> 添加路由,并用 Outlet 实现嵌套会话路由(会话列表 onItemClick 调 useNavigate 切换 :conversationId)。示例中自定义 URL 前缀为 user_<uid> 与 group_<guid>,需与 CometChat 原始 getConversationId() 区分。
  3. v7 框架模式:组件不能服务端渲染,用 ClientOnly 包装(useEffect 挂载后才渲染),或配合 React.lazy + Suspense;Provider 内需动态 import('@cometchat/chat-uikit-react'),并用模块级 initialized 与 loginInFlight 防止 StrictMode 下重复初始化与重复登录(否则 SDK 报 "Please wait until the previous login request ends.")。挂载方式分全应用包裹(聊天为主)与布局路由局部包裹(混合应用保留其他路由 SSR)。路由数据应放在 clientLoader,切勿放在 loader/action。

官方文档参考 https://www.cometchat.com/docs/ui-kit/react/overview,可通过 claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp 添加文档 MCP。资料提示使用前需对照已安装包与源码核验符号。

限制:资料未提供具体定价、平台支持范围与性能数据;文中登录示例(cometchat-uid-1)标注为仅开发使用;Visual Builder 相关内容仅涉及其 post-extract codemod 处理,细节未展开。适用场景为在既有 React Router 项目中嵌入 CometChat 聊天能力。