克隆本项目后:
- 安装所有项目依赖项
npm install
- 启动开发服务
npm start
├── CONTRIBUTING.md
├── README.md - 文档.
├── SEARCH_TERMS.md # 白名单.
├── package.json # npm 包管理文件. 无需修改.
├── public
│ ├── favicon.ico # React 图标.
│ └── index.html # 不要随意修改
└── src
├── App.css # 应用程序的样式,可以根据需求定制.
├── App.js # 这是应用程序的根文件.包含静态HTML.
├── BooksAPI.js # 一个API提供的Udacity后端JavaScript.
├── ListBooks.js # 书籍列表组件.
├── SearchBooks.js # 搜索组件.
├── icons # 顾名思义.
│ ├── add.svg
│ ├── arrow-back.svg
│ └── arrow-drop-down.svg
├── index.css # 全局css.
└── index.js # 仅用于DOM渲染.
每个组件单独创建新的js文件,并使用 import/require
注入需要该组件的页面.
有现成的后端服务器 file BooksAPI.js
所需要的接口方法:
方法签名:
getAll()
- 返回一个 Promise,解析为包含一个图书对象集合的JSON对象.
- 此集合表示当前应用程序中的书架中的图书.
方法签名:
update(book, shelf)
- book:
<Object>
至少包含一个id
属性 - shelf:
<String>
包含一个 ["wantToRead", "currentlyReading", "read"] - 返回一个 Promise 它解析为包含POST请求的响应数据的JSON对象
方法签名:
search(query)
- query:
<String>
- 返回一个 Promise,解析为包含最多20个图书对象集合的JSON对象.
- 这些书不知道他们放在哪一个架子上. 它们只是原始结果. 在搜索页面上,需要确保图书的状态是正确的.
该项目映射于 Create React App.