65.9K
CodeProject 正在变化。 阅读更多。
Home

5 个项目助你学习 React

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2017 年 9 月 14 日

CPOL

4分钟阅读

viewsIcon

8777

5 个项目助你学习 React

如果你正在努力学习 React,你可能已经遇到了“瓶颈”。

你已经掌握了基础知识:组件、props、state。你已经完成了一两个教程,并且可能构建了一些 To Do 应用程序。虽然你的技能还不足以构建一个真正的应用程序,但你知道构建更多的 To Do 应用程序不会让你更进一步。

在这篇文章中,我将向你展示 5 个有趣的项目,它们可以扩展你的能力,并且不涉及任何待办事项。

工具

我建议使用 Create React App 来引导这些项目。

社交卡片

我们将从一个简单的开始。这更像是一个组件而不是一个完整的应用程序,但这是一个很好的起点。

social card

这种 UI 的变体可以在网络上随处可见——Twitter、Facebook、Pinterest、Airbnb、Redfin 等等——它是一个坚实的构建块,用于显示图像 + 一些数据的应用程序。

这也是将 UI 分解为 React 组件的好练习。

一旦你有一个单独的 SocialCard 组件渲染,尝试用一些虚假数据制作一个列表。

天气应用

显示 5 天的天气预报,每天显示最高和最低温度,以及晴/雨/多云/下雪的图像。在使用真实数据之前,先使用假的硬编码数据,直到你正确渲染所有内容。

Weather App

你可能会注意到,“天”看起来很像社交卡片…

为了增加练习,以下是一些你可以扩展应用程序的方法

  • 添加点击某一天,查看其每小时预报的功能。你可以在顶级 App 状态中保持当前视图。
  • 将 React Router 添加到项目(npm install react-router)并按照此处的快速入门指南添加路由,例如/ 显示 5 天的预报,而 /[name-of-day] 显示特定日期的每小时预报。
  • Open Weather Map 注册一个免费的 API 密钥,获取真实的 5 天预报,并将该数据输入你的应用程序。
  • 想要变得更花哨吗?添加一个图形库,例如 vx,并按照 此处的 示例添加一周或一天中温度变化的图表。

你可以看到这个应用程序开始时很简单,但可以随意扩展以增加挑战和学习。

Hacker Hunt

Hacker Hunt 是 Hacker News 故事的聚合器,具有类别,但更重要的是,它是一个很好的 React 练习应用程序。

Hacker Hunt screenshot

有人说,所有 Web 应用程序基本上都只是列表。此应用程序将为你提供一些组件列表的练习,这些组件比待办事项稍微复杂一些。

首先使用静态数据,如果你想要更大的挑战,请从他们的 API 获取故事。从我可以从 devtools 中收集到的信息来看,这只是一个简单的路由,https://hackerhunt.co/api/daily/0,你可以将 0 替换为不同的页码。

你可以更进一步,使用 React Router 复制他们的路由结构。

计算器

Calculator mockup

你可能已经知道这些是如何工作的。加、减、乘、除……点击数字或操作应执行该动作。

为了增加挑战,也响应键盘输入。你不需要添加 <input> 元素来使其工作。如果你确实使用 <input>,请确保用户无需聚焦输入控件即可输入。

花一些时间思考状态将如何表示。你需要存储的不仅仅是显示器上的数字吗?当你键入一个新数字时,它是否用该数字替换显示器,还是将其附加到末尾?

添加一些 使用 Jest 进行快照测试,以测试计算器是否正常工作。

Github Issues 页面

制作一个简化版的 Github Issues 页面。 这是一个例子。 为了缩小范围,只需专注于实现问题列表,而忽略标题中的内容(搜索、过滤、星标等)。

Github issue list

首先从 Github 的 API 获取开放问题并在列表中显示它们。你也可以为此使用静态数据。

然后添加分页控件以允许浏览整个问题列表。你可能会发现添加 React Router 也很有用,这样你就可以直接导航到给定的页面。

为了增加难度,也实现问题详情页面。使用诸如 react-markdown 之类的东西呈现问题的 Markdown 文本及其评论。

Github issue detail

这是一个使用 React、Redux 和 React Router 的工作示例,它实现了上述功能以及更多功能。

What Next?

希望我为你提供了一些想法,可以帮助你提高 React 技能。要了解更多此类信息,请阅读 使用 Copywork 学习 并按照步骤在 React 中构建节拍器

帮助你学习 React 的 5 个项目 最初由 Dave Ceddia 于 2017 年 8 月 29 日在 Dave Ceddia 发布。

© . All rights reserved.