用React做一個(gè)Todo

第一步

1.創(chuàng)建一個(gè)文件夾來存放項(xiàng)目文件
2.打開cmd窗口進(jìn)入到剛創(chuàng)建的文件夾目錄
3.在cmd窗口輸入 $ npx create-react-app my-app 
3. 文件下載完成在窗口中輸入 cd my-app 進(jìn)入到文件內(nèi)去 
4. 在cmd窗口輸入 npm start 此刻項(xiàng)目文件會自動啟動打開瀏覽器的http://localhost:3000端口下運(yùn)行
5.在項(xiàng)目文件中刪除一些官方自帶的文件

第二步

1.創(chuàng)建index.js文件
2.引入項(xiàng)目的依賴
3.創(chuàng)建App.js文件
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));
這里要另外安裝axios依賴儒鹿,這個(gè)用來發(fā)送Ajax請求的
首先要安裝yarn,自行百度

import React, { Component } from 'react';
import Todolist from './Todolist';
import axios from "axios";
class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      inputvalue :  "",
      List : []
    }
    this.remove = this.remove.bind(this);
    this.addClick = this.addClick.bind(this);
    this.handerloChange = this.handerloChange.bind(this);
    
  }
  render() {
    return (
      <div>
        <div>
            <input type="text" placeholder="請輸入待辦事項(xiàng)" value={this.state.inputvalue} onChange={this.handerloChange}></input>
            <button onClick={this.addClick}>提交</button>
        </div>
        <ul>
            {this.getTodoItem ()}
        </ul>
      </div>
    );
  }
  componentDidMount() {
    axios.get('http://yapi.demo.qunar.com/mock/38353/app')
    .then((res) =>{ console.log(res.data);
      this.setState(() =>{
          return {
            List : res.data
          }
      });
    })
    .catch(() =>{alert('erro')})
  }
  getTodoItem () {
    return  this.state.List.map((item,index) =>{
      return(
            <Todolist
             key={index} 
             content={item} 
             index={index} 
             delet={this.remove}
             />
      )
    })
  }
  handerloChange (e) { 
    const value = e.target.value;
    this.setState(() => ({
        inputvalue : value
    }));
  }
  addClick () {
    this.setState((prevState) =>({
      List : [...prevState.List,prevState.inputvalue],
      inputvalue : ""
    }))
  }
  remove (index) {
 
    this.setState((prevState) => {
      const List = [...prevState.List];
      List.splice(index,1);
      return {List}
    });
  }
}

export default App;

第三步

創(chuàng)建Todolist 組件
新建一個(gè)Todolist .js文件
代碼如下:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
class Todolist extends Component {
    constructor(props) {
      super(props);
      this.state={
       }
      this.handelClick = this.handelClick.bind(this);
    }
    shouldComponentUpdate(nextProps,nextState) {
        if(nextProps.content !== this.props.content) {
            return true;
        }else{
            return false;
        }
    }
    render() {
        const {content} = this.props;
        
        return (
            <div onClick={this.handelClick}>{content}</div>
        )
    }


    handelClick() {
        const {delet,index} = this.props;
        delet(index);
    }
}
Todolist.propTypes = {
    content : PropTypes.oneOfType([PropTypes.string,PropTypes.number]),
    delet : PropTypes.func,
    index : PropTypes.number
}
export default Todolist;

最后

npm run start 來運(yùn)行項(xiàng)目
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拇厢,一起剝皮案震驚了整個(gè)濱河市柒爵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旬痹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弄诲,死亡現(xiàn)場離奇詭異菱鸥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抚垄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門蜕窿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谋逻,“玉大人,你說我怎么就攤上這事桐经』僬祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵阴挣,是天一觀的道長气堕。 經(jīng)常有香客問我,道長屯吊,這世上最難降的妖魔是什么送巡? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮盒卸,結(jié)果婚禮上骗爆,老公的妹妹穿的比我還像新娘。我一直安慰自己蔽介,他們只是感情好摘投,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虹蓄,像睡著了一般犀呼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薇组,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天外臂,我揣著相機(jī)與錄音,去河邊找鬼律胀。 笑死宋光,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炭菌。 我是一名探鬼主播罪佳,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黑低!你這毒婦竟也來了赘艳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤克握,失蹤者是張志新(化名)和其女友劉穎蕾管,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菩暗,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娇掏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勋眯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婴梧。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡下梢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塞蹭,到底是詐尸還是另有隱情孽江,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布番电,位于F島的核電站岗屏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏漱办。R本人自食惡果不足惜这刷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娩井。 院中可真熱鬧暇屋,春花似錦、人聲如沸洞辣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扬霜。三九已至定鸟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間著瓶,已是汗流浹背联予。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留材原,地道東北人沸久。 一個(gè)月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像华糖,于是被迫代替她去往敵國和親麦向。 傳聞我的和親對象是個(gè)殘疾皇子瘟裸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 陳氏太極拳老架一路講義 前言 寫給喜愛太極拳的武術(shù)朋友們 中華武術(shù)客叉,源遠(yuǎn)流長,今雖門派繁多话告,實(shí)一脈相承兼搏。太極拳以它...
    阿德樂閱讀 5,595評論 0 12
  • 學(xué)會的第一道菜就是尖椒炒雞蛋,那時(shí)候很小沙郭,忘記多大了佛呻,爸媽都生病了,做飯的活就由我來完成病线,因?yàn)樾∷允裁炊疾粫胖?..
    chachada閱讀 172評論 0 0
  • 上個(gè)月底鲤嫡,我新入職場,并且是以新人身份绑莺。我本打算低調(diào)也不多建立人際關(guān)系暖眼。耐不住開會時(shí)領(lǐng)導(dǎo)沒在我們私下聊了起來。有幾...
    簡單人D閱讀 413評論 0 1
  • 上周多多醬推薦了一個(gè)避暑的好地方 沒錯(cuò)栋豫!就是貴州! 一說起貴州谚殊,你腦海里浮現(xiàn)的是不是都是央媽的廣告丧鸯? 其實(shí),貴州真...
    游多多客棧閱讀 430評論 0 6