ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 相关技术栈介绍([视频](http://aaa)) ### 总体架构 ![](http://assets.processon.com/chart_image/57bea6b1e4b094664b14bbc0.png) :-: ![](https://box.kancloud.cn/6b99d3e915dbe2a536f94f8130ecde54_1052x464.png) ### [`react`](https://reactjs.org/) 用于构建用户界面的 JavaScript 库 #### 1. 声明式 React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。 以声明式编写UI,可以让你的代码更加可靠,且方便调试。 #### 2. 组件化 创建好拥有各自状态的组件,再由组件构成更加复杂的界面。 无需再用模版代码,通过使用JavaScript编写的组件你可以更好地传递数据,将应用状态和DOM拆分开来。 #### 3. 一次学习,随处编写 无论你现在正在使用什么技术栈,你都可以随时引入 React 开发新特性。 React 也可以用作开发原生应用的框架 React Native. ### [`redux`](https://redux.js.org/) Redux是一个流行的JavaScript框架,为应用程序提供一个可预测的状态容器。在标准的MVC框架中,数据可以在UI组件和存储之间双向流动,而Redux严格限制了数据只能在一个方向上流动。 :-: ![](https://box.kancloud.cn/57863ea64ac14dd252da177372dc56cf_687x330.png) 在Redux中,所有的数据(比如`state`)被保存在一个被称为`store`的容器中 → 在一个应用程序中只能有一个。`store`本质上是一个状态树,保存了所有对象的状态。任何UI组件都可以直接从`store`访问特定对象的状态。要通过本地或远程组件更改状态,需要分发一个`action`。分发在这里意味着将可执行信息发送到`store`。当一个`stor`e接收到一个`action`,它将把这个`action`代理给相关的`reducer`。`reducer`是一个纯函数,它可以查看之前的状态,执行一个`action`并且返回一个新的状态。