在React课程的今天翻译中,我们建议您完成使用JavaScript创建组件集的实际任务,并继续使用TODO应用程序。

→
第1部分:课程概述,React,ReactDOM和JSX普及的原因→
第2部分:功能组件→
第3部分:组件文件,项目结构→
第4部分:父级和子级组件→
第5部分:TODO应用程序的开始工作,样式设计的基础→
第6部分:关于本课程的一些功能,JSX和JavaScript→
第7部分:内联样式→
第8部分:继续研究TODO应用程序,熟悉组件的属性→
第9部分:组件属性→
第10部分:使用组件特性和样式的研讨会→
第11部分:动态标记生成和映射数组方法→
第12部分:研讨会,TODO应用程序的第三阶段工作→
第13部分:基于类的组件→
第14部分:关于基于类的组件,组件状态的研讨会→
第15部分:组件健康研讨会→
第16部分:TODO应用程序的第四阶段工作,事件处理→
第17部分:TODO应用程序的第五阶段工作,修改组件的状态→
第18部分:TODO应用程序的第六阶段工作→
第19部分:组件生命周期方法第20部分:条件渲染的第一课→
第21部分:关于条件渲染的第二课和研讨会→
第22部分:TODO应用程序的第七阶段工作,从外部资源下载数据→
第23部分:关于使用表格的第一课→
第24部分:第二形式课→
第25部分:使用表单的研讨会→
第26部分:应用程序体系结构,容器/组件模式→
第27部分:课程项目第22课。 动态形成零件组
→
原创▍工作
基于
create-react-app
生成的标准React应用程序项目,并使用
vschoolProducts.js
的
vschoolProducts.js
数据文件的代码,创建一个应用程序,该应用程序在页面上显示使用标准
.map()
数组方法生成的
Product
组件列表。基于来自
vschoolProducts.js
数据。
记住要创建组件实例,并向它们传递具有唯一标识符的
key
属性,否则系统将发出警告。
在解决问题的过程中,可以使用
App.js
文件的以下准备:
import React from "react" import productsData from "./vschoolProducts" function App() { return ( <div> </div> ) } export default App
这是
vschoolProducts.js
文件
vschoolProducts.js
:
const products = [ { id: "1", name: "Pencil", price: 1, description: "Perfect for those who can't remember things! 5/5 Highly recommend." }, { id: "2", name: "Housing", price: 0, description: "Housing provided for out-of-state students or those who can't commute" }, { id: "3", name: "Computer Rental", price: 300, description: "Don't have a computer? No problem!" }, { id: "4", name: "Coffee", price: 2, description: "Wake up!" }, { id: "5", name: "Snacks", price: 0, description: "Free snacks!" }, { id: "6", name: "Rubber Duckies", price: 3.50, description: "To help you solve your hardest coding problems." }, { id: "7", name: "Fidget Spinner", price: 21.99, description: "Because we like to pretend we're in high school." }, { id: "8", name: "Sticker Set", price: 14.99, description: "To prove to other devs you know a lot." } ] export default products
▍解决方案
这是
App.js
文件的代码:
import React from "react" import Product from "./Product" import productsData from "./vschoolProducts" function App() { const productComponents = productsData.map(item => <Product key={item.id} product={item}/>) return ( <div> {productComponents} </div> ) } export default App
请注意,数据文件中对象的
id
属性是可选的。 此属性对于设置通过
Product
组件实例的
.map()
方法创建的
key
属性很有用。
这是
Product.js
文件的代码:
import React from "react" function Product(props) { return ( <div> <h2><font color="#3AC1EF">{props.product.name}</font></h2> <p>{props.product.price.toLocaleString("en-US", { style: "currency", currency: "USD" })} - {props.product.description}</p> </div> ) } export default Product
在这里,当派生包含商品价格的属性时,该属性在组件中显示为
props.product.price
,我们使用
toLocaleString()
方法来格式化商品的数量。
这就是VSCode中的应用程序项目。
VSCode中的应用这是浏览器中的应用程序页面。
浏览器中的应用程序页面注意商品价值的显示形式。
第23课。 TODO应用程序。 阶段数3
→
原创在这里,我们将继续处理TODO应用程序,该应用程序
在此处和
此处已处理。 特别是,在这里您将被要求应用有关组件列表动态形成的知识,以创建应用程序显示的待办事项列表。
▍工作
使用
todosData.js
案例
todosData.js
(其内容在下面给出),创建
TodoItem
组件列表,
TodoItem
此列表显示在
App
组件中。 请注意,您将需要修改
TodoItem
组件的代码,以便它可以显示传递给它的属性。
这是
todosData.js
文件的内容:
const todosData = [ { id: 1, text: "Take out the trash", completed: true }, { id: 2, text: "Grocery shopping", completed: false }, { id: 3, text: "Clean gecko tank", completed: false }, { id: 4, text: "Mow lawn", completed: true }, { id: 5, text: "Catch up on Arrested Development", completed: false } ] export default todosData
▍解决方案
这是
App.js
文件的代码:
import React from "react" import TodoItem from "./TodoItem" import todosData from "./todosData" function App() { const todoItems = todosData.map(item => <TodoItem key={item.id} item={item}/>) return ( <div className="todo-list"> {todoItems} </div> ) } export default App
这是
TodoItem.js
文件的代码:
import React from "react" function TodoItem(props) { return ( <div className="todo-item"> <input type="checkbox" checked={props.item.completed}/> <p>{props.item.text}</p> </div> ) } export default TodoItem
这是VSCode中的应用程序项目。
VSCode中的应用应该指出的是,在完成本实践课程所提供的工作之后,尽管我们将为应用程序配备新功能,但我们仍会破坏其功能。 特别是,我们正在谈论标志的状态。 将检查使用
props.item.completed
属性设置为
true
的标志来设置状态,将使用相同属性设置为
false
的标志不选中。 但是,如果您单击应用程序页面上的标志,则不会发生任何事情,因为我们错误地配置了相应的HTML元素。 您可以在控制台中看到有关此的警告。
浏览器中的应用程序页面和控制台中的警告稍后,我们将讨论表格并修复我们的培训应用程序,同时继续进行处理。
总结
在本课程中,您有机会练习创建组件文件,使用在创建组件实例时传递给组件实例的属性,以及使用标准的
.map()
JavaScript数组方法。 此外,在这里,我们继续致力于培训应用程序。 下次,我们将讨论基于类的组件。
亲爱的读者们! 您是否掌握了使用
.map()
JavaScript数组方法创建组件集的技术?
