React GraphQL Todo 应用教程
1. 项目的目录结构及介绍
react-graphql-todos/
├── client/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── App.js
│ │ ├── index.js
│ ├── package.json
├── server/
│ ├── config/
│ ├── models/
│ ├── resolvers/
│ ├── schema/
│ ├── index.js
│ ├── package.json
├── package.json
-
client/
: 前端 React 应用的目录。public/
: 包含静态文件,如index.html
。src/
: 包含 React 组件和应用逻辑。components/
: 存放 React 组件。App.js
: 主应用组件。index.js
: 应用入口文件。
package.json
: 前端项目的依赖和脚本。
-
server/
: 后端 Express 和 GraphQL 服务器的目录。config/
: 配置文件。models/
: 数据库模型。resolvers/
: GraphQL 解析器。schema/
: GraphQL 模式定义。index.js
: 服务器入口文件。package.json
: 后端项目的依赖和脚本。
-
package.json
: 根目录的package.json
文件,用于管理整个项目的依赖和脚本。
2. 项目的启动文件介绍
前端启动文件
client/src/index.js
:
该文件是前端 React 应用的入口文件,负责渲染import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; ReactDOM.render(<App />, document.getElementById('root'));
App
组件到index.html
中的root
元素。
后端启动文件
server/index.js
:
该文件是后端服务器的入口文件,使用 Express 和 Apollo Server 启动 GraphQL 服务器。const express = require('express'); const { ApolloServer } = require('apollo-server-express'); const typeDefs = require('./schema/typeDefs'); const resolvers = require('./resolvers'); const server = new ApolloServer({ typeDefs, resolvers }); const app = express(); server.applyMiddleware({ app }); app.listen({ port: 4000 }, () => console.log(`Server ready at http://localhost:4000${server.graphqlPath}`) );
3. 项目的配置文件介绍
前端配置文件
client/package.json
:
该文件定义了前端项目的依赖和脚本,如启动、构建和测试命令。{ "name": "client", "version": "1.0.0", "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "dependencies": { "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3" } }
后端配置文件
server/package.json
:
该文件定义了后端项目的依赖和脚本,如启动命令。{ "name": "server", "version": "1.0.0", "scripts": { "start": "node index.js" }, "dependencies": { "apollo-server-express": "^2.25.2", "express": "^4.17.1", "graphql": "^15.5.0" } }
通过以上介绍,您可以更好地理解和使用 react-graphql-todos
项目。希望本教程对您有所帮助!