评论列表案例-创建 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 函数,对数组每一项进行操作并且把返回的结果当作一个新数组,最终把新数组放到页面上。

相关文章
|
1月前
|
JavaScript 前端开发 API
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
27 2
|
1月前
|
前端开发 JavaScript 索引
改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
22 2
|
1月前
|
JavaScript
vue列表信息展示中新增数据,与编辑数据页面复用,降低重复代码
vue列表信息展示中新增数据,与编辑数据页面复用,降低重复代码
179 2
|
1月前
|
JavaScript 前端开发 C++
vue的条件渲染以及列表渲染的总结归纳加代码演示
vue的条件渲染以及列表渲染的总结归纳加代码演示
57 0
|
10月前
函数方式渲染页面
函数方式渲染页面
36 0
|
数据安全/隐私保护
uniapp动态切换显示不同内容组件
通过点击注册或是登录按钮切换不同的组件.默认显示登陆界面,登录字样加粗显示,登录页面显示手机号密码登录.
uniapp动态切换显示不同内容组件
|
前端开发 开发者
评论列表案例-将评论列表组件和评论项组件抽离为单独的组件|学习笔记
快速学习评论列表案例-将评论列表组件和评论项组件抽离为单独的组件
61 0
评论列表案例-将评论列表组件和评论项组件抽离为单独的组件|学习笔记
|
JavaScript 开发者
组件-创建组件的方式1|学习笔记
快速学习组件-创建组件的方式1
65 0
组件-创建组件的方式1|学习笔记
|
JavaScript 开发者
组件-创建组件的方式3|学习笔记
快速学习组件-创建组件的方式3
53 0
组件-创建组件的方式3|学习笔记
|
前端开发 JavaScript 信息无障碍
导航条-组件结构分析|学习笔记
快速学习 导航条-组件结构分析
145 0
导航条-组件结构分析|学习笔记