评论列表案例-创建 CmtList 组件并渲染基本页面结构|学习笔记

简介: 快速学习评论列表案例-创建 CmtList 组件并渲染基本页面结构

开发者学堂课程【React 入门与实战评论列表案例-创建 CmtList 组件并渲染基本页面结构】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8105


评论列表案例-创建 CmtList 组件并渲染基本页面结构


一、渲染评论列表

这是评论列表

评论人:张三

评论内容:哈哈,沙发

评论人:李四

评论内容:哈哈,板凳

评论人:王五

评论内容:哈哈,凉席

评论人:赵六

评论内容:哈哈,砖头

评论人:田七

评论内容:哈哈,楼下山炮

里面的评论项都是用 for 循环创建出来的。

最外层定义为大组件叫做评论列表组件,里面每一个评论项叫做评论项组件。这样就有了两个组件:父组件,子组件。评论项所对应的数据放在父组件,作为私有数据。


二、通过 for 循环生成多个组件

1. 数据:

commentlist: [

{ id: 1, user:‘张三", content:‘哈哈,沙发’},

{ id: 2, user:‘李四",content:‘哈哈,板凳’},

{ id : 3, user: ‘王五', content:‘哈哈,凉席’},

{ id: 4,user:‘赵六',content:‘哈哈,砖头’}

{ id: 5, user:‘田七', content:‘哈哈,楼下山炮”}

]

第一步,创建父组件,有两种方式:创建成 class 有状态组件;普通的 function 无状态组件。数据在这里是写死的,在企业中是通过 ajax 拿到的,所以要用有状态的组件。

//使用 class 关键字,定义父组件

class CmtList extends React.Component{

constructor(){

super()

this.state = { }

}

render( ){

return <div>

111   

//这里创建 div 标签的作用是占位

此时执行效果如下:

image.png

<div>

<h1>这是评论列表组件<h1>

</div>

}

}

image.png

这样评论列表组件就有了,然后将数据写入 state

ComentList[       //评论列表数据

{ id: 1user:'张三', content: ‘哈哈,沙发’}

{ id: 2,user: ‘李四',content:‘哈哈,板凳’}

{ id: 3,user: '王五', content:‘哈哈,凉席’}

{ id: 4, user:‘赵六',content:‘哈哈,砖头’}

{ id: 5,user:‘田七', content:‘哈哈,楼下山炮’}

]

循环 ComentList 的每一项才能在页面上创建对应的 UI 元素,所以:

{this.state.CommentList.map(item => <div>{item.user}</div>)}

.map对数组每一项进行操作并返回新数组

第一次循环完出现的是第一条数据包装成 div 放到数组里,其他数据同理。当整个循环完成后得到新数组,里面包含五个 div 里面包含每个名字。

image.png

运行提示缺少 Key,所以在 div 后加上:

key={item.id

这时候只有名字所以要把结构完善:

div里放入子元素

{this.state.CommentList.map(item => <div key={item. id}>

<h1>评论人: {item.user}</h1>

<p>评论内容:{item.contentl</p>

</div)}

image.png

循环了 ComentList 组件上的私有数据,由于数据是一个数组,直接调用数组的 .map 函数,对数组每一项进行操作并且把返回的结果当作一个新数组,最终把新数组放到页面上。

相关文章
|
4月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
|
17天前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
153 2
|
2月前
|
前端开发 JavaScript UED
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
在React或Vue中,若需在更改用户所属组后更新页面所有数据但不刷新整个页面,可以通过改变路由出口的key值来实现。在用户切换组成功后,更新key值,这会触发React或Vue重新渲染路由出口下的所有组件,从而请求新的数据。这种方法避免了使用`window.location.reload()`导致的页面闪烁,提供了更流畅的用户体验。
54 1
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
|
3月前
|
JavaScript 前端开发
【Vue 3】如何实现动态表单生成器的拖拽功能?
【Vue 3】如何实现动态表单生成器的拖拽功能?
|
6月前
|
数据可视化 开发者
CodeWave智能开发平台--03--目标:应用创建--04自定义主题样式5子页面页面跳转逻辑
CodeWave智能开发平台--03--目标:应用创建--04自定义主题样式5子页面页面跳转逻辑
|
6月前
|
前端开发 JavaScript 索引
改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
49 2
|
6月前
|
JavaScript 前端开发 API
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
199 2
|
6月前
|
JavaScript
vue列表信息展示中新增数据,与编辑数据页面复用,降低重复代码
vue列表信息展示中新增数据,与编辑数据页面复用,降低重复代码
270 2
|
6月前
|
JavaScript 前端开发 C++
vue的条件渲染以及列表渲染的总结归纳加代码演示
vue的条件渲染以及列表渲染的总结归纳加代码演示
89 0
函数方式渲染页面
函数方式渲染页面
46 0