用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'));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM