最全的react视频【黑马程序员】--第七章 评论列表案例(

目录

1.创建CmtList组件并渲染基本的组件结构

2. 将评论Item项抽离为单独的CmtItem组件

3. 将评论列表和评论项抽离为单独的组件


 

目标效果页面:

1.创建CmtList组件并渲染基本的组件结构

index.js


import React from 'react'
import ReactDOM from 'react-dom'


//使用class关键字定义父组件
class CmtList extends React.Component{
    constructor(){
        super();
        this.state={
            CommentList:[ //评论列表数据
                {id:1, user:'张三',content:'哈哈哈, 沙发'},
                {id:2, user:'李四',content:'哈哈哈, 鼓励'},
                {id:3, user:'王二',content:'哈哈哈, 友好'},
                {id:4, user:'赵六',content:'哈哈哈, 调低'},
                {id:5, user:'田七',content:'哈哈哈, 朋友'},
            ]
        }
    }

    render(){
        return <div>
            <h1>这是评论列表</h1>

            {this.state.CommentList.map(item => <div key={item.id}>
                <h1>评论人 : {item.user}</h1>
                <p>评论内容: {item.content}</p>
            </div>)}
        </div>
    }
}


//3. 调用render函数渲染
ReactDOM.render(<div> 
   123
   <CmtList></CmtList>
</div>, document.getElementById('app'))



2. 将评论Item项抽离为单独的CmtItem组件


import React from 'react'
import ReactDOM from 'react-dom'

//使用function定义自组件,因为其中的每一项都是通过item拿到的
function CmtItem(props){
    return <div>
    <h1>评论人 : {props.user}</h1>
    <p>评论内容: {props.content}</p>
</div>
}


//使用class关键字定义父组件
class CmtList extends React.Component{
    constructor(){
        super();
        this.state={
            CommentList:[ //评论列表数据
                {id:1, user:'张三',content:'哈哈哈, 沙发'},
                {id:2, user:'李四',content:'哈哈哈, 鼓励'},
                {id:3, user:'王二',content:'哈哈哈, 友好'},
                {id:4, user:'赵六',content:'哈哈哈, 调低'},
                {id:5, user:'田七',content:'哈哈哈, 朋友'},
            ]
        }
    }

    render(){
        return <div>
            <h1>这是评论列表</h1>

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


//3. 调用render函数渲染
ReactDOM.render(<div> 
   123
   <CmtList></CmtList>
</div>, document.getElementById('app'))



3. 将评论列表和评论项抽离为单独的组件

index.js


import React from 'react'
import ReactDOM from 'react-dom'

import CmtList from './components/CmtList'


//3. 调用render函数渲染
ReactDOM.render(<div> 
   123
   <CmtList></CmtList>
</div>, document.getElementById('app'))



 

CmtItem.jsx

import React from 'react'
//import ReactDOM from 'react-dom'
//使用class关键字定义父组件
//导入 评论项 字组件
import CmtItem from './CmtItem'

export default class CmtList extends React.Component{
    constructor(){
        super();
        this.state={
            CommentList:[ //评论列表数据
                {id:1, user:'张三',content:'哈哈哈, 沙发'},
                {id:2, user:'李四',content:'哈哈哈, 鼓励'},
                {id:3, user:'王二',content:'哈哈哈, 友好'},
                {id:4, user:'赵六',content:'哈哈哈, 调低'},
                {id:5, user:'田七',content:'哈哈哈, 朋友'},
            ]
        }
    }

    render(){
        return <div>
            <h1>这是评论列表</h1>

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

CmtItem.jsx 

import React from 'react'
import ReactDOM from 'react-dom'

//使用function定义自组件,因为其中的每一项都是通过item拿到的
export default function CmtItem(props){
    return <div>
    <h1>评论人 : {props.user}</h1>
    <p>评论内容: {props.content}</p>
</div>
}

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章:React基础 1.react基础 2. JSX语法 3. 如何给组件添加样式 4. 如何添加自定义组件 5. 创建无状态组件 6. 学习render方法 7. 组件的属性 8. 组件的状态 9. 理解react中的this 10. 使用refs操作DOM元素 11. 子组件children属性 12. 组件的生命周期之创建 13. 组件的生命周期之销毁 14. 高阶组件 第二章: 使用React-router玩转路由管理 1. react路由介绍 2. 跑通基本的开发环境 3. 跑通基本路由 4. 使用Link组件进行导航切换 5. 路由的嵌套使用 6. 设置路由激活状态 7. 路由参数 8. 默认路由 9. indexlink 10. 路由重定向 11. browser history 12. webpack后端服务器 13. 路由切换 14. 钩子函数 15. 扩展内容 第三章:初入JS函数式编程的世界 1.什么是函数式编程 2. 函数式编程的好处 3. 函数是一等公民 4. 纯函数的作用 5. 柯里化函数 6. 函数组合 7. 高阶函数    第四章:深入浅出redux应用 1. Redux课程介绍 2.什么是Redux 3.搭建开发环境 4.理解action-store-reducer 5.理解dispatch 6.subscribe订阅 7.action-creator 8.react-redux介绍 9.实现计数器应用(1) 10.实现计数器应用(2) 11.实现计数器应用(3) 12.实现计数器应用(4) 13.Redux中间件(1) 14.Redux中间件(2) 15.Redux中间件(3) 16.Redux中间件(4) 17.logger中间件 18.thunk中间件实现异步action 19.超棒的调试工具 20.区分开发和生产环境 21.react-router-redux 22.中间件优化    第五章:使用React构建一个应用 1. 组件化思维解析应用功能 2. 跑通基本路由 3. 创建头部搜索组件 4. 封装展示用户信息的组件 5. state、props在传递数据的使用 6. 接入数据 7. 组件功能开发 8. PropTypes接口约束 9. 请求github API数据进行展示    第六章:最新React架构打造炫酷个人简历实战 01-整体项目介绍和内容分析 02-项目需求分析和组件化思考 03-跑通项目基础架构(一) 04-跑通项目基础架构(二) 05-目录规划指导并跑通第一个组件 06-添加container下各组件并跑通路由 07-react-addons-css-transition-group 08-NavMenu导航组件开发(一) 09-NavMenu导航组件开发(二) 10-NavMenu导航组件开发(三) 11-实现collapse折叠功能 12-实现路由激活状态的样式 13-目录层级调整 14-项目首页开发 15-About组件实现及样式优化 16-从业务过程到组件化思维的过渡 17-Skills组件开发 18-Project组件开发与Timeline的使用 19-Project组件和axios 20-Project组件样式开发 21-Contact组件开发(一) 22-Contact组件开发(二) 23-Contact组件开发(三)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值