最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react中的雙向綁定你真的了解嗎

 更新時(shí)間:2022年03月07日 16:38:08   作者:前端三腳貓  
這篇文章主要為大家詳細(xì)介紹了react中的雙向綁定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

前言:因?yàn)轫?xiàng)目原因需要學(xué)習(xí)另一個(gè)超級(jí)火的框架react, 因?yàn)橹耙恢笔褂胿ue進(jìn)行開發(fā),所以在學(xué)習(xí)react中會(huì)不自覺的代入一些vue中的概念來理解react中的實(shí)現(xiàn),下面就通過對(duì)比學(xué)習(xí)的方式記錄下react中的知識(shí)。

在react中其實(shí)是沒有雙向綁定的概念,每次更新頁(yè)面和值都需要我們自己去調(diào)用指定的api來觸發(fā),而在vue中只需要使用v-model指令就可以完全實(shí)現(xiàn),在vue中的指令其實(shí)也是使用了幾個(gè)事件的語(yǔ)法糖來實(shí)現(xiàn),所以下面就去看下react中的“雙向綁定”是怎么來實(shí)現(xiàn)的。

如果實(shí)現(xiàn)react中得雙向綁定,首先要理解state這個(gè)屬性,簡(jiǎn)單來說react中得state就是一個(gè)對(duì)象,它用來緩存和維護(hù)當(dāng)前組件中所使用到得狀態(tài),可以理解為vue中data中定義得值,如:

import React, { Component } from 'react'
export default class Class extends Component {
  constructor(props) {
    super(props)
    this.state = {name: '', age: ''}
  }
  render() {
    return (
      <div>
        <form onSubmit={handleSubmit}>
        </form>
      </div>
    )
  }
}

而在函數(shù)式組件中,使用hooks可以將這個(gè)統(tǒng)一的state值根據(jù)功能和場(chǎng)景拆分為多個(gè)state用來更加方便的使用和維護(hù),如:

import React, { useState } from 'react'
export default function ModelChange() {
  const [name, setName] = useState('')
  const [age, setAge] = useState()
  const handleSubmit = () => {
  }
  return (
    <div>
      <form onSubmit={handleSubmit}>
      </form>
    </div>
  )
}

需要注意的是,如果需要改變維護(hù)的狀態(tài)的值,需要使用指定的方法才會(huì)使頁(yè)面更新,如函數(shù)式組件中定義的setName方法等。下面就看看react在input輸入框中實(shí)現(xiàn)雙向綁定,代碼如下:

import React, { useState } from 'react'
export default function ModelChange() {
  const [name, setName] = useState('')
  const handleCnhange = e => {
    const data = e.target.value
    setName(data)
  }
  return (
    <div>
      <form>
        <label>
          名字:
          <input type="text" value={name} onChange={handleCnhange} />
        </label>
      </form>
    </div>
  )
}

上面的代碼通過useState定義了值name,然后通過input標(biāo)簽的value將name展示出來,通過監(jiān)聽change事件獲取輸入的值并調(diào)用定義好的方法setName修改name的值并更新頁(yè)面,又使頁(yè)面展示為新輸入的值,通過這個(gè)流程的操作就實(shí)現(xiàn)了在react中的雙向綁定。如果我們想要修改和獲取多個(gè)輸入的值可以使用name屬性來實(shí)現(xiàn),代碼如下:

import React, { useState } from 'react'
export default function ModelChange() {
  const [data, setData] = useState({
    name: '', age: ''
  })
  const handleCnhange = e => {
    const {value, name} = e.target
    setData(preData => {
      return {
        ...preData,
        [name]: value
      }
    })
  }
  const handleSubmit = (e) => {
    console.log(data)
  }
  return (
    <div>
      <form>
        <label>
          名字:
          <input type="text" name="name" value={data.name} onChange={handleCnhange} />
        </label>
        <label>
          年齡:
          <input type="text" name="age" value={data.age} onChange={handleCnhange} />
        </label>
        <input type="button" value="提交" onClick={handleSubmit} />
      </form>
    </div>
  )
}

上面代碼將name和age字段聲明在了一個(gè)集合中(根據(jù)業(yè)務(wù)和使用場(chǎng)景也可以進(jìn)行拆分定義),通過給input標(biāo)簽添加name屬性來更給指定屬性更新當(dāng)前輸入的值,效果如下:

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • react創(chuàng)建項(xiàng)目啟動(dòng)報(bào)錯(cuò)的完美解決方法

    react創(chuàng)建項(xiàng)目啟動(dòng)報(bào)錯(cuò)的完美解決方法

    這篇文章主要介紹了react創(chuàng)建項(xiàng)目啟動(dòng)報(bào)錯(cuò)的完美解決方法,全稱為Node Package Manager,是隨同NodeJS一起安裝的包管理工具,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 淺談React的React.FC與React.Component的使用

    淺談React的React.FC與React.Component的使用

    本文主要介紹了React的React.FC與React.Component的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Header組件熱門搜索欄的實(shí)現(xiàn)示例

    Header組件熱門搜索欄的實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Header組件熱門搜索欄的實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • React組件通信實(shí)現(xiàn)流程詳解

    React組件通信實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個(gè)重要的知識(shí)點(diǎn),本文通過實(shí)例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下
    2022-12-12
  • 深入理解React?State?原理

    深入理解React?State?原理

    本文主要介紹了React?State?原理,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • React中使用Redux Toolkit狀態(tài)管理的示例詳解

    React中使用Redux Toolkit狀態(tài)管理的示例詳解

    在現(xiàn)代 React 應(yīng)用程序中,狀態(tài)管理是一個(gè)至關(guān)重要的部分,使用 Redux Toolkit 可以簡(jiǎn)化 Redux 的配置和管理,本文將通過三個(gè)文件的示例,詳細(xì)講解如何使用 Redux Toolkit 創(chuàng)建和管理一個(gè)簡(jiǎn)單的計(jì)數(shù)器狀態(tài),需要的朋友可以參考下
    2024-11-11
  • React+Typescript創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟

    React+Typescript創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟

    通過React組件庫(kù)和TypeScript的強(qiáng)類型特性,開發(fā)者可以創(chuàng)建出具有優(yōu)秀用戶體驗(yàn)和穩(wěn)定性的Web應(yīng)用程序,本文主要介紹了React+Typescript創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2023-08-08
  • React創(chuàng)建組件的的方式匯總

    React創(chuàng)建組件的的方式匯總

    React 是一個(gè)用于構(gòu)建用戶界面的 JAVASCRIPT 庫(kù)。這篇文章主要介紹了React組件的兩種創(chuàng)建方式,一種是使用函數(shù)創(chuàng)建組件另一種是使用類創(chuàng)建組件,需要的朋友可以參考下
    2021-11-11
  • react常見的ts類型實(shí)踐解析

    react常見的ts類型實(shí)踐解析

    這篇文章主要為大家介紹了react常見的ts類型實(shí)踐解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • React中實(shí)現(xiàn)組件通信的幾種方式小結(jié)

    React中實(shí)現(xiàn)組件通信的幾種方式小結(jié)

    在構(gòu)建復(fù)雜的React應(yīng)用時(shí),組件之間的通信是至關(guān)重要的,從簡(jiǎn)單的父子組件通信到跨組件狀態(tài)同步,不同組件之間的通信方式多種多樣,下面我們認(rèn)識(shí)react組件通信的幾種方式,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

邵阳县| 黔南| 洞头县| 顺昌县| 水富县| 寻甸| 高台县| 朝阳县| 康保县| 曲麻莱县| 建水县| 仁化县| 安阳市| 尤溪县| 锡林郭勒盟| 栾川县| 高平市| 霍州市| 青河县| 和硕县| 平遥县| 内江市| 绥江县| 武穴市| 石台县| 澎湖县| 汝城县| 张家港市| 河西区| 沙洋县| 疏勒县| 青阳县| 尼玛县| 泉州市| 永德县| 武平县| 广德县| 崇阳县| 夏河县| 嘉善县| 德州市|