React系列三——props属性

本文介绍如何使用React创建子组件来展示评论数据。通过子组件Comment展示每条评论的作者、日期及内容,并在父组件CommentList中循环渲染多个Comment实例。此外还介绍了如何从main.js文件或服务端获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

子组件

'use strict'

import React from 'react';

class Comment extends React.Component {
    render() {
        return (
            <div className="comment">
                <div className="content">
                    <span className="author">{this.props.author}</span>
                    <div className="metadata">
                        <span className="date">{this.props.date}</span>
                    </div>
                    <div className="text">{this.props.children}</div>
                </div>
            </div>
        )
    }
}

export { Comment as default };   //输出CommentBox组件作为默认的东西

父组件

'use strict'

import React from 'react'
import Comment from './Comment'

class CommentList extends React.Component{
    render() {
        return (
            <div>
                <Comment author="lff" date="5 minutes">11111111</Comment>
                <Comment author="ffl" date="3 minutes">2222</Comment>
            </div>

        )
    }
}

export { CommentList as default };   //输出CommentBox组件作为默认的东西

这里写图片描述

从上一级组件中获取数据

  1. 在main.js文件中存在数据
var comments = [
  {"author": "lff", "date": "5 minutes", "text": "11111"},
  {"author": "ffl", "date": "3 minutes", "text": "22222"}
];

ReactDom.render(
  <CommentBox data={comments}/>,
document.getElementById('app')
) ;
  1. 在CommentBox组件中获取main数据
<CommentList data = {this.props.data} />
  1. 在CommentList组件中循环展示
class CommentList extends React.Component{
    render() {
        let commentNodes = this.props.data.map(comment => {
            return(
                <Comment author={comment.author} date={comment.date}>{comment.text}</Comment>
            )
        })
        return (
            <div>
                {commentNodes}
            </div>

        )
    }
}

显示结果与原相同

从服务端获取数据
main文件获取数据路径改变

<CommentBox url="app/comments.json"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值