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

效果图:

以下为源代码部分截图:

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端口,当然你也可以自己修改

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,下面是一个简单的使用 React 开发的列表前端页面示例: 1. 创建一个新的 React 应用程序 首先,你需要安装 Node.js 和 npm。然后,在终端中运行以下命令,创建一个新的 React 应用程序: ``` npx create-react-app my-app cd my-app npm start ``` 2. 编写组件 在 `src` 目录下创建一个名为 `List.js` 的文件,编写以下代码: ```javascript import React from 'react'; function List(props) { const { items } = props; return ( <ul> {items.map(item => ( <li key={item.id}>{item.name}</li> ))} </ul> ); } export default List; ``` 该组件接受一个 `items` 属性,其中包含一个项目数组。它将项目数组映射到一个无序列表中,并为每个项目生成一个唯一的键。 3. 渲染组件 在 `src` 目录下创建一个名为 `App.js` 的文件,编写以下代码: ```javascript import React from 'react'; import List from './List'; const items = [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, ]; function App() { return ( <div> <h1>List of Items</h1> <List items={items} /> </div> ); } export default App; ``` 该组件创建一个名为 `items` 的项目数组,并将其传递给 `List` 组件。它还在页面上呈现一个标题。 4. 将应用程序渲染到页面上 在 `src/index.js` 文件中,找到以下代码: ```javascript ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') ); ``` 将其替换为以下代码: ```javascript import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; ReactDOM.render(<App />, document.getElementById('root')); ``` 此代码将 `App` 组件渲染到具有 ID 为 `root` 的 DOM 元素中。 5. 运行应用程序 在终端中运行 `npm start` 命令,启动应用程序。你应该看到一个标题为“List of Items”的页面,其中包含三个项目的列表。 这就是一个简单的使用 React 开发的列表前端页面示例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值