91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在React中實現一個todolist功能

發布時間:2020-12-28 14:50:15 來源:億速云 閱讀:141 作者:Leah 欄目:開發技術

怎么在React中實現一個todolist功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、index.js

ReactDOM.render(
 <React.StrictMode>
  <TodoList />
 </React.StrictMode>,
 document.getElementById('root')
);

二、TodoList

1、constructor

constructor(props) {
    super(props);
    this.state = {
      inputValue: '',
      list: []
    }
  }

2、render

 render() {
    return (
      <React.Fragment>
        <div>
          {/*label標簽的作用,擴大點擊范圍*/}
          <label htmlFor='insertArea'>輸入內容</label>
          <input
            id='insertArea'
            className={'inputStyle'}
            value={this.state.inputValue}
            onChange={event => this.handleInputChangle(event)}/>
          <button onClick={event => this.handleButtonVlue(event)}>提交</button>
          <hr/>
          <ul>
            {this.getTodoList()}
          </ul>
        </div>
      </React.Fragment>
    )
  }

3、getTodoList

getTodoList() {
    return (
      this.state.list.map((value, index) => {
        return <TodoItem2
          key={index}
          itemVlue={value}
          itemIndex={index}
          itemDelete={this.handleItemDelete.bind(this)}>
          {/*這塊需要強制綁定為父組件的this,否則在子組件中找不到*/}
        </TodoItem2>
      })
    );
  }

4、事件函數

 /**
   * 監聽輸入框變化
   **/
  handleInputChangle(e) {
    const value = e.target.value;
    this.setState(() => ({
      inputValue: value
    }))
  }
 
  /**
   * 監聽點擊按鈕
   **/
  handleButtonVlue(e) {
    this.setState((prevStatus) => ({
      list: [...prevStatus.list, this.state.inputValue],
      inputValue: ''
    }))
  }
 
  /**
   * 監聽點擊item刪除
   **/
  handleItemDelete(index) {
    this.setState((preStatus) => {
      const list = [...preStatus.list];
      list.splice(index, 1)
      return {
        list
      }
    });
  }

5、網絡請求

使用Charles代理網絡,安裝證書,設置端口,在手機上面打開網絡WIFI,設置代理IP和端口,這樣就能監聽到手機訪問的網絡,攔截請求,代理本地地址,返回本地數據。

怎么在React中實現一個todolist功能

需要注意的是charles識別不出來localhost,需要在package.json中改成設置:

* "start": "set PORT=3000 HOST=localhost.charlesproxy.com && react-scripts start",

訪問時候使用:

http://localhost.charlesproxy.com:3000/

(1)引入axios

yarn yarn add axios 

(2)在componentDidMount進行網絡請求

 /**
   * 這塊進行網絡請求
   */
  componentDidMount() {
    axios.get('api/todolist')
      .then((res) => {
        this.setState({
          list: [...res.data]
        })
      }).catch(() => {
      alert('發生錯誤')
    })
  }

看完上述內容,你們掌握怎么在React中實現一個todolist功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临城县| 沾益县| 伊宁市| 洞头县| 灵寿县| 通江县| 同江市| 贵南县| 额尔古纳市| 环江| 大庆市| 岳池县| 健康| 车险| 桐城市| 巩义市| 四会市| 宝鸡市| 永昌县| 文安县| 长丰县| 安庆市| 伊春市| 多伦县| 永年县| 皋兰县| 赫章县| 甘孜县| 余江县| 大名县| 宝鸡市| 永修县| 鄂托克旗| 遵义市| 昌图县| 卓尼县| 阜宁县| 称多县| 镇赉县| 河东区| 龙游县|