本次更新系列的第四部分,通过React重写了一个炉石查牌器。如果你尚未阅读前作,可以参考:episode1episode2episode3不关心前作内容的读者,可以直接阅读下文,内容独立,不影响理解。为了开始这个项目,首先创建一个新的React应用。使用命令创建应用,并确保你的环境中安装了最新(或较新)的node.js以及npm。启动应用,输入,在浏览器中打开,你会看到应用已成功启动。接下来,替换UI设计。在App.js文件中,删除现有代码,并用HTML表格结构替换当前的UI设计。HTML表格将作为新的界面展示。为了美观,我们接下来通过CSS调整样式。删除App.css文件,创建或更新index.css,以美化显示效果。这样,应用的界面将更加吸引人。为了实现数据动态更新,引入状态管理。修改App.js文件,添加状态变量并实现数据展示、输入框与查询按钮的交互逻辑。将表格内容与状态变量关联,实现动态更新。为了增强用户交互性,添加输入框,允许用户输入卡牌的攻击力、生命值和费用。通过查询炉石API,根据输入信息获取卡牌数据,并在表格中展示。这里使用了Form组件,它包含输入框与查询按钮。为了优化查询功能,添加状态管理,让输入框内容实时更新。使用事件处理更新状态,并实现按钮点击事件,触发API查询。引入Fetch API,替代XMLHttpRequest,实现更高效的数据获取。在按钮点击事件中,调用Fetch API,获取卡牌数据。在App.js中,设置状态变量用于保存输入框内容,实现数据的实时更新。通过按钮点击事件调用API,并在返回数据后展示卡牌信息。为了解决API响应数据的展示问题,引入props机制。将查询方法作为props传递给Form组件,实现数据与展示的分离。接下来,对展示效果进行优化。实现卡牌图片显示,调整图片大小,并使用CSS约束调整布局。为方便操作,添加删除按钮,并实现按钮点击事件,删除对应的卡牌数据。最后,将表格组件独立出来,创建Table.js文件,实现表格的独立管理和展示。通过props传递数据操作方法,实现表格组件与App组件之间的数据交互。通过这个故事,我们学习了React的基本概念,如组件、JSX、props和state的使用。我们还了解了如何通过状态管理实现数据的动态更新,以及如何在组件间传递变量和方法。此外,我们还引入了表单和API调用,丰富了应用的功能和交互性。确保在应用中添加必要的标签,避免浏览器报错。参考资料