# v0.4.0

## 🌟 新功能

- **Next.js MVP 版本**：现有功能的 Next.js 复刻，服务端对接 Dify API，规避客户端密钥泄露问题
- **文档站点**：基于 Rspress 构建的 [文档站点](https://docs.dify-chat.lexmin.cn/) 正式发布，大幅提升文档阅读和交互体验
- **主题模式缓存**：用户选择主题模式后，下一次进入页面后会应用之前的设置，并提升主题切换在旧版本浏览器中的兼容性
- **独立授权页面**：现在的模拟授权登录功能已抽离为单独页面，自定义用户信息获取逻辑变得更加方便

## 💥 破坏性更新

- 完全移除 `DifyChatProvider` 和 `useDifyChat`，简化组件嵌套，升级文档详见 [从 v0.3.0 迁移](https://docs.dify-chat.lexmin.cn/guide/migrate/from_v0.3.0.html)

## 🔨 问题修复

- 修复对话列表内容溢出时无法滚动的问题 [7192d03](https://github.com/lexmin0412/dify-chat/commit/7192d0318ccec5f567e61eb3a0a31351b232e6b1)
- 修复 Dify 配置的开场白文字非空，但建议问题为空时，开场白整体被隐藏的问题 [e62b38c](https://github.com/lexmin0412/dify-chat/commit/e62b38c0359aac126f6cde5be6b8a5ba16a25568)

## ❤️ 体验优化

- 聊天气泡和按钮样式优化 [4a2208f](https://github.com/lexmin0412/dify-chat/commit/4a2208f5c47a2f2e4c50f2958ce3f79b8dda8428)
- 开场白标题支持换行 [d282aab](https://github.com/lexmin0412/dify-chat/commit/d282aab47f43d83a1ecbfe15955f0e03c8689a5f)

## 🏠 核心依赖升级

- `react` 及相关依赖从 18.x 升级到 19.x
- `@ant-design/x` 从 1.2.0 升级到 1.4.0
- `pure-react-router` 从 0.2.3 升级到 0.2.4（兼容 React19）

# Draft

- [ ] Next.js 初始版本
  - [ ] 规范启动端口和 BaseURL，尽量和 React APP 保持基本一致
  - [ ] 简单鉴权
  - [ ] 部署到 Vercel
    - [ ] 部署说明
    - [ ] 环境变量说明
- TailwindCSS 版本升级到 V4
- 支持分享应用和对话

## react-app 的重构思路：

- 尽量去除 Context 的使用
- 使用组合式思想重构组件嵌套
  - 系统运行参数，直接通过 props 传入，或提供公共参数获取，如 mode
  - 全局依赖，如 appService，直接将 api 函数作为 props 传入，在外部通过一次初始化取不同属性注入不同组件
  - 缓存状态信息，如 user，直接注入到最底层请求方法，注入方式可以是分布式 store 或者本地存储（前者更加，多开页面时数据不会混淆）
- `@dify-chat/components` 子包去除 Context 依赖，成为 PureComponent

## 更新内容

- 【Components】开场白标题支持换行
- 【React APP】开发服务器支持外部访问
- 旧版本浏览器支持主题监听
