react制作简单评论列表展示页面

Web前端:如何使用React构建令人惊叹的用户界面 你可能已经知道,React是由Facebook开发的,它是一个开源JavaScript库,可用于创建令人惊叹的用户界面。 阅读详情

效果图:

以下为源代码部分截图:

webpack.config.js

var path = require('path')
var webpack = require('webpack')
var ExtractTextPlugin = require('extract-text-webpack-plugin')  
var HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    devtool:'eval', //source-map
    entry:{
        main:'./src/index.js'//入口文件
    },
    output:{
        path:path.join(__dirname, 'dist'),//出口文件
        filename: '[name].[hash:8].bundle.js'
    },
    resolve: {
        extensions: [' ', '.js','.jsx', '.json','.css','.less'],
        alias:{
            '@': path.join(__dirname,'./src') //这样,@就表示 项目根目录中的 src 的这一层路径
        }
    },
    module:{
        rules: [
        {
            test: /\.css$/,//加载less样式的loader
            use: ExtractTextPlugin.extract({
                fallback: "style-loader",
                use: ['css-loader', 'less-loader']
            })
        },
        {
            test: /\.less$/,//加载less样式的loader
            use: ExtractTextPlugin.extract({
                fallback: "style-loader",
                use: ['css-loader?modules&localIdentName=[path][name]-[local]-[hash:6]', 'less-loader?modules']
            })
        },{
            test: /\.js|jsx$/,//用于解析es6语法的babel-loader
            exclude: /node_modules/,
            use: 'babel-loader'
        },{
            test: /\.ttf|woff|woff2|eot|svg$/,//用于解析es6语法的babel-loader
            use: 'url-loader'
        }] 
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(), //热更新
        new webpack.NoEmitOnErrorsPlugin(), //错误不编译
        new ExtractTextPlugin('style.css'), //css模块独立
        new HtmlWebpackPlugin({
                title: 'Redux Practive', //标题
                // favicon: './src/assets/img/favicon.ico', //favicon路径
                filename: './index.html', //生成的html存放路径,相对于 path
                template: './src/index.html', //html模板路径
                inject: true, //允许插件修改哪些内容,包括head与body`
                minify: { //压缩HTML文件
                    removeComments: true, //移除HTML中的注释
                    collapseWhitespace: false //删除空白符与换行符
                }
        })
     ]
}

index.js

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

//导入 评论 组件
import CmtList from '@/components/CmtList'

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

CmtItem.jsx

import React from 'react'

import cssobj from '@/css/cmtitem.less'
console.log(cssobj);



//使用function构造函数,定义普通的无状态组件
export default function  CmtItem(props){
	return  <div className={cssobj.cmtbox}>
		<h1 className={cssobj.title}>评论人:{props.user}</h1>
		<p className={cssobj.content}>评论内容:{props.content}</p>
	</div>
}

CmtList.jsx

import React from 'react'

//导入 列表组件需要的 样式表
import cssobj from '@/css/cmtlist.less'


//导入 评论项 子组件
import CmtItem from '@/components/CmtItem'

import 'bootstrap/dist/css/bootstrap.css'

//使用class关键字,定义父组件
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>
			{/* 注意  在JSX中,如果想写行内样式了,不能 为style设置字符串的值 */}
			{/* 而是应该这么写 style={{ color: 'red' }} */}
			{/* 在行内样式中,如果是数组类型的样式,则可以不用引号包裹,如果是 字符串类型的 样式值,必须使用引号包裹 */}
			<h1 className={[cssobj.title,'test'].join(' ')}>这是评论列表组件</h1>
			{/*<button className={[bootcss.btn,bootcss['btn-primary']].join(' ')}>按钮</button>*/}
			<button className='btn btn-primary'>按钮</button>
			<div className="panel panel-primary"></div>
			{this.state.CommentList.map(item => <CmtItem {...item} key={item.id}></CmtItem>)}
		</div>
	}
}

项目地址: https://github.com/erdfty/react-test-190819

项目下载下载运行执行  npm install,然后运行 npm start就可以启动项目了,项目运行在127.0.0.1:8087端口,当然你也可以自己修改

Veristand自动化测试:Stimulus Profile Editor实战指南 本文是Veristand自动化测试中Stimulus Profile Editor的实战指南。详细介绍了如何利用这一图形化工具,将繁琐的手动测试流程转化为一键自动执行的“剧本”,涵盖工程控制、信号编程、预制动作调用等核心功能,并通过手把手案例演示了构建首个自动化测试脚本的全过程,帮助测试工程师显著提升效率与可靠性。 阅读详情

相关推荐

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

React 编写网页聊天界面(仿钉钉)

React 编写网页聊天界面(仿钉钉)

qq_45634989的博客 6076

cut&tag学习笔记

上图是我得到的结果,下图是教程的结果,比对结果有一些差异,我也不知道具体原因是啥。谷歌了一下,发现原因可能是因为环境变量的问题,系统不知道picard的具体位置,需要设置全局环境变量,遂查了一下picard的位置。我发现我做出来的结果测序深度一致,但是比对的结果有一点差异,不知道是我的操作问题,还是参考基因组更新了导致比对结果出现了些许不同。上图是我得到的结果,下图是教程的结果,除了IgG_rep1外比对结果一致。上图是我的结果,下图是教程的结果,结果不太一致,不知道是具体的原因是什么。

weixin_52073820的博客 2423

React页面设计初体验

1、定制路由 export default [ //login { path: '/login', name: 'login', component: '../layouts/BlankLayout', routes: [ { path: '/login', component: './Login/Index', } ] }, // app { path: '/', c

qq_57756904的博客 617

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

配置思科交换机冗余链路汇聚

本文对交换机端口汇聚配置进行说明

istrangeboy&begin zero的博客 6684

React 实现页面全屏效果

HTML代码: &amp;amp;amp;amp;amp;amp;lt;a onClick={this.fullScreen} style={{ margin: &amp;amp;amp;amp;amp;quot;0 6px 0 6px&amp;amp;amp;amp;amp;quot;}} &amp;amp;amp;amp;amp;amp;gt;全屏&amp;amp;amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;amp;am

下雨不愁的博客 1万+

Docker版OnlyOffice中文字体配置全攻略:从字号调整到字体添加

本文详细介绍了在Docker版OnlyOffice中配置中文字体和调整字号的完整方案。通过容器内操作和配置文件修改,实现中文标准字号映射及思源、阿里巴巴等优质字体的集成,提升文档排版的规范性和专业性。特别针对企业级部署提供了性能优化建议和常见问题解决方案。

weixin_28309571的博客 137

React 精华一页纸

同 angularJS、Vue一样,React 也是一种替换框架,采用JSX语法进行替换 react.min.js - React 的核心库 react-dom.min.js - 提供与 DOM 相关的功能 browser.min.js - 用于将 JSX 语法转为 JavaScript 语法 1、典型用法 入门例子 ReactDOM.render( Hello, w

起了大早,赶了晚集 435

SMART200如何实现多次调用子程序带定时器功能

1、西门子200PLC的子程序由于很多限制条件,如果希望建立一个可以多次调用的子程序,那么这个子程序里是不能含有定时器指令的,所以我们只能退而求其次了。建议将沿指令(上升沿、下降沿)放在多次调用子程序的外面。 2、可以提供不同的时基,提供不同时间的定时 3、实现秒定时 5、子程序内部: STL代码: 1、时基信号由外部提供、 可以提供不同的时基信号 2、实现循环定时开关 LD #Start:L0....

RXXW_Dor的博客 1万+

MySQL 一一 MySQL基本使用

1、数据库 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。 2、为什么需要数据库 3、为什么要学习MySQL数据库 最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。 随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数

Guizy 7万+

基于React实现B站评论区

使用React构建了一个仿照B站基本的前端评论系统,实现了动态加载、排序、添加和删除评论的基本功能。通过React的状态管理和事件处理机制,实现了交互式的用户体验。但是在实际应用中,还需考虑与后端接口的交互、错误处理、分页加载、以及更复杂的用户交互逻辑。

stu_kk的博客 2058

实战指南:Qwen3-ASR-1.7B 语音识别

本文介绍了Qwen3-ASR语音识别模型的安装与使用。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1805

使用React做个简单的页面-04

个人中心    页面效果代码实现    个人中心页面      import React from 'react';import ReactDOM from 'react-dom';import {Row, Col, Modal} from 'antd';import {Menu, Icon} from 'antd';const SubMenu = Menu.SubMenu;const MenuI...

qq_39736103的博客 1167

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

React组件之评论列表案例

评论列表案例1. 渲染评论列表2. 渲染暂无评论3. 获取评论信息4. 发表评论 根据前期所介绍的组件基础,实现一个评论列表的案例,要实现的功能分为四个部分: 渲染评论列表(列表渲染) 没有评论数据时渲染:暂无评论(条件渲染) 获取评论信息,包括评论人和评论内容(受控组件) 发表评论,更新评论列表(setState()) 初始搭建的页面结构为: <style> .app{ margin:20px auto; border:1px

m0_48375854的博客 1247

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【react案例】实现评论列表

【代码】【react案例】实现评论列表。

在热爱技术的路上一直前行。 1008

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ReactJS实现一个简单的评论列表

class CmtList extends React.Component { constructor() { super(); this.state = { CommentList: [ {id:1, user: 'sss', content: 'java'}, {id:2, user: 'sss', content: 'java'}, {id:3

JavaEdge全是干货的技术号 1473

react 实现评论管理页面

一、把页面拆分组件 可以拆分为4个组件,组件文件的后缀名可以是js,也可以是jsx格式。 二、主要代码 项目结构 入口文件 index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './components/app/app'; ReactDOM.render(...

快乐de馒头 1031

React评论列表

React评论列表 index.js import React from 'react' import ReactDOM from 'react-dom' import CmtList from '@/components/CmtList' ReactDOM.render(<div> <CmtList></CmtList> </div>, do...

qq_43618136的博客 264

【React】通过实际示例详解评论列表渲染和删除

当 React 渲染列表时,它需要一个唯一的标识符来跟踪每个元素,以便在元素发生变化时可以高效地重新渲染和更新。函数渲染列表是一种常见的模式,因为它能够简洁而高效地遍历数组,并生成一组对应的 JSX 元素。方法接收一个回调函数作为参数,回调函数会对数组中的每个元素执行操作,然后返回新数组中的元素。不唯一,可能导致一些潜在的 Bug。是 JavaScript 中数组的一个方法,用于遍历数组中的每个元素,并返回一个新的数组。属性的值应当是唯一的,且尽量稳定,以避免因重新渲染而导致的性能问题或潜在的 Bug。

lph159的博客 757

react实现评论列表案例

在学习了 react 的 JSX 语法以及 类组件 后,实现的一个 评论列表案例。主要包括:发表评论、删除评论以及清空评论

小白小白从不日别的博客 1098

React技术栈 --》组件对比和评论列表案例 ## Day4

全网独播-价值千万金融项目前端架构实战从两道网易面试题-分析JavaScript底层机制RESTful架构在Nodejs下的最佳实践一线互联网企业如何初始化项目-做一个自己的vue-cli思维无价,看我用Nodejs实现MVC代码优雅的秘诀-用观察者模式深度解耦模块前端高级实战,如何封装属于自己的JS库!真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲详情关注公中号【编程进阶路】VUE组件库级组件封装-高复用弹窗组件。

2401_85158559的博客 1071

react学习五:升级评论列表案例

CmtList.jsx: 评论列表组件 import React from 'react' import CMTItem from './CmtItem.jsx' import CMTBox from './CmtBox.jsx' export default class CMTList extends React.Component { constructor(props) { ...

zerobaek的博客 310

react-hooks 实现简单的评论list

react 16.7.0-alpha.2版本中推出了新版本的react-hook,详细的可以参照官方文档, 下面我讲用react-hooks实现简单的评论list 效果图: demo整体架构使用react 16.8 + webpack + antd-mobile 源代码: 创建输入框hooks const [list, setList] = useState([{name: 'ma...

weixin_34122548的博客 513

react页面渲染之前_reactjs - 在react.js中渲染后滚动到页面顶部

reactjs - 在react.js中渲染后滚动到页面顶部我有一个问题,我没有想法,如何解决。在我的react组件中,我显示了一长串数据,底部显示了很少的链接。点击任何链接后,我用新的链接集合填写列表,需要滚动到顶部。问题是 - 如何在渲染新集合后滚动到顶部?'use strict';// url of this component is #/:checklistId/:sectionIdva...

weixin_29065015的博客 1598

react案例:发布评论

案例只涉及到react的基础操作,没有涉及到前后端数据的交互,案例中的数据为模拟自定义数据。

weixin_42532983的博客 1076
上一篇: -webkit-overflow-scrolling解决移动端iOS滚动卡顿现象
下一篇: react中JSX详解
哈哈hyc
博客等级 码龄8年 131粉丝 87原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值