用react写一个demo,增删列表

今天学了一点react,挺好玩的哈哈,分享一下demo

1.环境搭建

(1)首先进入node.js官网,下载nods.js后安装,安装成功后会自带安装npm,接下来验证是否安装成功,在cmd中输入node -v和npm -v后若输出版本号及证明安装成功,如下:

(2)下载submit._text,进入submit官网,下载软件后安装即可

2.react项目创建

(1)进入cmd,输入命令

npx create-react-app app
cd app
npm start

即可创建一个名为app的文件,接着就可以进行开发

3.react开发

(1)项目目录

主要为src目录中的文件,入口文件是index.js,它引用了App.js文件,如下

为了简化项目结构,可以只保留index.js和App.js两个文件,并将其他引用删除,方便开发,最后只剩下如下内容:

(2)正式开发

先定义一个constructor构造器,存放todoList列表数据

1   constructor(props){
2     super(props);
3     this.state = {
4       list: [],
5       inputVal : ‘‘
6     }
7   }

再写总体页面,即一个输入框和添加按钮,还有列表事件

 1 render() {
 2     return (
 3       <div className="App">
 4         <div>
 5           <input value={this.state.inputVal} onChange={this.handleinput.bind(this)}/>
 6           <button onClick={this.handleBut.bind(this)}>添加</button>
 7         </div>
 8         <ul>
 9         {
10           this.state.list.map((item,index) => {
11             return <li key = {index} onClick={this.handleItem.bind(this)}>{item}</li>
12           })
13         }
14         </ul>
15       </div>
16     );
17   }

然后添加插入事件以及删除事件的方法

 1  handleBut(){
 2     this.setState({
 3       list : [...this.state.list, this.state.inputVal],
 4       inputVal : ‘‘
 5     })
 6   }
 7
 8   handleinput(e){
 9     this.setState({
10       inputVal : e.target.value
11     })
12   }
13
14   handleItem(index){
15     const list = [...this.state.list];
16     list.splice(index, 1);
17     this.setState({list})
18   }

到此就差不多完成了,运行http://localhost:3000/即可看到

在input中输入事件添加即可

然后点击对应的事件就可以删除。

总体代码如下:

App.js:

 1 import React, { Component } from ‘react‘;
 2
 3 class App extends Component {
 4
 5   constructor(props){
 6     super(props);
 7     this.state = {
 8       list: [],
 9       inputVal : ‘‘
10     }
11   }
12
13
14   handleBut(){
15     this.setState({
16       list : [...this.state.list, this.state.inputVal],
17       inputVal : ‘‘
18     })
19   }
20
21   handleinput(e){
22     this.setState({
23       inputVal : e.target.value
24     })
25   }
26
27   handleItem(index){
28     const list = [...this.state.list];
29     list.splice(index, 1);
30     this.setState({list})
31   }
32
33   render() {
34     return (
35       <div className="App">
36         <div>
37           <input value={this.state.inputVal} onChange={this.handleinput.bind(this)}/>
38           <button onClick={this.handleBut.bind(this)}>添加</button>
39         </div>
40         <ul>
41         {
42           this.state.list.map((item,index) => {
43             return <li key = {index} onClick={this.handleItem.bind(this)}>{item}</li>
44           })
45         }
46         </ul>
47       </div>
48     );
49   }
50 }
51
52 export default App;

index.js:

1 import React from ‘react‘;
2 import ReactDOM from ‘react-dom‘;
3 import App from ‘./App‘;
4
5 ReactDOM.render(<App />, document.getElementById(‘root‘));

原文地址:https://www.cnblogs.com/YYXyeyue/p/9470345.html

时间: 2024-10-08 09:36:48

用react写一个demo,增删列表的相关文章

利用React写一个评论区组件(React初探)

本文是在阅读学习了官方的React Tutorial之后的整理,实例链接. 开始使用React 首先从官方获取React.js的最新版本(v0.12.2),或者下载官方的Starter Kit,并在我们的html中引入它们: <head> <meta charset="UTF-8"> <title>React Test Page</title> <script src="../build/react.js">

使用jeesite框架写一个树结构的列表页面(一般的数据表结构)

先上图,看一下需要完成的列表页的效果 以区域树结构列表为例子,大致就是要完成这个效果 1.做这个需求之前,我大致阅读了jeesite官方文档( https://jeesite.gitee.io/docs/)关于树表结构的文档(带有树表两个字的都看了看),查看了jeesite框架中自带的页面实例,又查看了项目中一些运用了树结构的页面以及后台代码. 按照文档走,我搞不出来这个东西...,为什么别的页面用得好好的呢???最后发现,我的数据表结构有点问题, jeesite的这个树结构如果要直接使用的话,

用React写一个工大导航

Online: https://brenner8023.github.io/gdut-nav/ GitHub地址: https://github.com/brenner8023/gdut-nav 笔者在广工读书这几年, 总的来说是快乐地生活, 不过生活之中也有一些烦恼存在着, 比如去校医院看病却不知道门诊的时间, 想要知道教学日历, 每次都要询问同学等等. 这些事情虽然是小事小问题, 但是它们不止一次地困扰着我. 为此, 我决定利用我大学本科学到的知识来解决这些问题. 问题的解决之道就是设计并开

通过写一个Demo展示C#中多种常用的集合排序方法

不多说,程序很简单,就是将集合中的数据进行排序,但使用到的知识点还是比较多的,大牛勿喷,谨献给初学者!直接上程序吧! namespace Demo { /// <summary> /// Demo:使用不同排序方法对元素进行排序 /// </summary> class Program { private static void Main(string[] args) { ArrayList arrayList = Product.GetArrayList(); List<P

swift写一个简单的列表unable to dequeue a cell with identifier reuseIdentifier - must register a nib or a cla

报错:unable to dequeue a cell with identifier reuseIdentifier - must register a nib or a class for the identifier or connect a prototype cell in a storyboard 解决方法:在identifier里添加代码里自己写的标示

如何看eclipse中的崩溃信息?用一个demo教会你

我相信很多android初学者用刚开始都是用的Eclipse开发工具,并且很多初级书籍也不会教大家怎么去看崩溃日志,虽然不难,但是靠自己琢磨还是挺浪费时间的,我们就写一个Demo来看看吧! 注释掉一行代码,让程序崩溃 注释掉创建ViewHolder对象的代码,让程序崩溃. MainActivity中展示一个ListView 这个Demo很简单,就是在MainActivity中展示一个ListView,<第一行代码>中的例子. 现在我们注释掉了创建ViewHolder对象的代码,连上手机,运行程

放弃antd table,基于React手写一个虚拟滚动的表格

缘起 标题有点夸张,并不是完全放弃antd-table,毕竟在react的生态圈里,对国人来说,比较好用的PC端组件库,也就antd了.即便经历了2018年圣诞彩蛋事件,antd的使用者也不仅不减,反而有所上升. 客观地说,antd是开源的,UI设计得比较美观(甩出其他组件库一条街),而且是蚂蚁金服的体验技术部(一堆p7,p8,p9,基本都是大牛级的)在持续地开发维护,质量可以信任. 不过,antd虽好,但一些组件在某一些场景下,是很不适用的.例如,以表格形式无限滚动地展示大量数据(1w+)时,

使用Volley来写一个List列表(Valley可以解决很大一部分android请求server的问题)

先上效果图: 先写一个Volley的请求的类: public void fetchData() { String url = "http://2.novelread.sinaapp.com/framework-sae/index.php"; // String body = ""; // try { // mEntity = new StringEntity(body); // } catch (UnsupportedEncodingException e1) {

angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”

曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示react+redux的“弯弯绕”,下面这个程序就是我用react和redux写的.然而这个程序在angular中一行js都不用写!!! 展示组件 App.js import React, { findDOMNode, Component } from 'react'; import ReactDOM