今天學了一點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'));