国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用

這篇具有很好參考價值的文章主要介紹了React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

我們創(chuàng)建一個react項目 在src下創(chuàng)建components文件夾
在下面創(chuàng)建一個index.jsx
index.jsx 參考代碼如下

import React, { useState } from "react";

const useInputValue = (initialValue) => {
    const [value,setValue] = useState(initialValue);
    return {
        value,
        onChange: e => setValue(e.target.value),
        clearValue: () => setValue("")
    }
}

const TodoForm = ({ onSubnit }) => {
    const { clearValue,...text } = useInputValue("");
    function onSubeitHandler(e){
        e.preventDefault();
        onSubnit(text.value);
        clearValue("");
    }
    return (
        <form onSubmit = { onSubeitHandler }>
            <input type="text" { ...text }/>
        </form>
    )
}

export default TodoForm

首先 我們通過一個比較典型的方法定義了一個用于聲明表單元素綁定響應式數(shù)據(jù)的的函數(shù)useInputValue
接收一個參數(shù) 用于做響應式數(shù)據(jù)的默認值 然后暴露他的value 同時 綁定了一個onChange
onChange這個事件大家應該并不陌生 就是表單元素內(nèi)容放生變化時
這里的意思就是 當 onChange 觸發(fā)說明輸入框或者其他表單元素內(nèi)容已經(jīng)變化了 那么 我們就執(zhí)行setValue(e.target.value),
setValue是通過useInputValue聲明出來用于修改響應式數(shù)據(jù)的函數(shù) 就是通過setValue將表單修改后的內(nèi)容寫入到響應式數(shù)據(jù)的內(nèi)容當中
這個寫法還是比較正規(guī)的 GitHub 很多案例采用這種方式
然后 我們自己寫了一個clearValue 用于手動清空這個數(shù)據(jù)

然后 我們在開始執(zhí)行了

const { clearValue,...text } = useInputValue("");

意識 我要一個clearValue單獨拿出來用 然后 整個方法返回的那個對象 給我裝在這個text 中
因為 value和onChange事件的邏輯一定要在一起 不然就出問題了

然后 我們給表單綁定了 onSubmit 事件 用于監(jiān)聽它提交 因為 我們就一個輸入框 直接按回車 表單就提交內(nèi)容了
然后綁定的事件邏輯是onSubeitHandler
首先 進入事件 我們最先執(zhí)行

e.preventDefault();

阻止元素的默認行為 因為表單提交會跳轉(zhuǎn)的 我們要攔截掉他的這個行為 不然你也可以不加這個看一下 就會自己跳轉(zhuǎn)
然后 我們執(zhí)行

onSubnit(text.value);

首先 參數(shù)來講 text是通過useInputValue聲明是獲取的 那么 他的value就是這個響應式數(shù)據(jù)的值
調(diào)用了onSubnit
這個 onSubnit 是 父組件給的
React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用
可能大家看到不是很明白 或者 我們其實可以這樣寫
React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用
函數(shù)模式下 接受的第一個參數(shù) 就是props 為了方便 直接 { onSubnit }
意思就是 拿取 props中的 onSubnit
然后 調(diào)用了剛剛弄出來的 clearValue 清空響應式數(shù)據(jù)

然后 我們編寫 src下的 App.js代碼如下

import React,{ useState } from "react"
import Index from "./components/index.jsx"

const Appind = () => {
  
  const [todos,setTodos] = useState([]);

  function setValue(text) {
    setTodos([{ text },...todos]);
  }

  return (
    <div>
      <Index onSubnit={ setValue }/>
      <div>
          {
            todos.map((element,index) => {
              return (
                <div key={index}>
                  { element.text } 
                </div>
              )
            })
          }
      </div>
    </div>
  );
};

export default Appind;

這里 我們先導入了剛剛寫的 index 組件 然后調(diào)用
聲明了一個 todos 響應式數(shù)據(jù) 默認值是一個空數(shù)組
然后 聲明setTodos 用于修改todos響應式數(shù)據(jù)

然后我們之前說過 index.jsx組件需要父組件給一個函數(shù)onSubnit
這里 我們給了setValue
里面的邏輯就是 接受到text 也就是index組件傳過來的 text.value
將他通過ES6數(shù)組合并的方法與自身已有下標進行合并
然后通過 setTodos 修改值

然后 在index組件下寫了一個循環(huán) 輸出了todos數(shù)組的內(nèi)容
我們運行項目
React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用
我們在輸入框中輸入內(nèi)容 然后按回車 內(nèi)容就會通過onSubnit 一個一個與todos合并 加載到下面的循環(huán)元素中去
React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用
這個按理的邏輯 大家還是可以好好去演示一下的 如果看懂了 收獲會比較大文章來源地址http://www.zghlxwxcb.cn/news/detail-485783.html

到了這里,關(guān)于React 通過一個輸入內(nèi)容加入列表案例熟悉 Hook 基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • React實現(xiàn)文本框輸入文字內(nèi)容動態(tài)給圖片添加文字信息(多個)并生成新的圖片

    React實現(xiàn)文本框輸入文字內(nèi)容動態(tài)給圖片添加文字信息(多個)并生成新的圖片

    收到這個需求的時候,我的內(nèi)心是崩潰的,腦子里已經(jīng)跑過一萬匹草泥馬,內(nèi)心想這種事為啥不交給ps去做,哪怕是手機里圖片編輯也可以做到吧,專業(yè)的事交給專業(yè)的工具去干不就好了,何必出這種XX需求。后來想想就釋然了,反正拿錢干活,干啥不是干,只要給錢,再XX的

    2024年02月06日
    瀏覽(27)
  • chatgpt賦能python:Python中如何輸入一個列表?

    如果你正在使用Python編程語言,那么輸入一個列表是很常見的任務。列表是Python中最常用的數(shù)據(jù)類型之一,它允許我們在一個變量中存儲多個值。在這篇文章中,我們將介紹如何使用Python語言輸入一個列表,并探究一些最佳實踐來優(yōu)化輸入過程。 在Python中,列表是一個有序的

    2024年02月08日
    瀏覽(97)
  • chatgpt賦能python:Python中如何輸入一個列表

    chatgpt賦能python:Python中如何輸入一個列表

    輸入一個列表是Python編程的基本任務之一。列表可以看做是一種序列,其中包含多個元素,用逗號隔開,并用方括號括起來。在Python中,列表是一種非常常見的數(shù)據(jù)類型,常用于存儲和處理一系列相關(guān)的數(shù)據(jù)。 本文將介紹Python中如何輸入一個列表,包括幾種不同的方法和代碼

    2024年02月09日
    瀏覽(95)
  • python通過selenium獲取輸入框的文本值爬取編輯框內(nèi)容

    python通過selenium獲取輸入框的文本值爬取編輯框內(nèi)容

    以百度首頁的輸入框為例,當輸入‘你好‘后,html中的value的值會變成‘你好’ 運行代碼得到以下效果

    2024年02月04日
    瀏覽(34)
  • Web 自動化測試案例——關(guān)閉某視頻網(wǎng)站彈出廣告以及打開登錄框輸入內(nèi)容

    Web 自動化測試案例——關(guān)閉某視頻網(wǎng)站彈出廣告以及打開登錄框輸入內(nèi)容

    人生苦短,我用Python。許久沒寫博客了,今天又是久違的參與話題的討論,話題的內(nèi)容是: 如何入門 Python 的? 這個話題對于我來說有點小尷尬,因為我沒有系統(tǒng)的學習過 Python 這門語言,只不過在寫些算法題、小demo接觸過,還有就是幫朋友搞大數(shù)據(jù)作業(yè)時(爬取數(shù)據(jù)、分析

    2024年02月10日
    瀏覽(16)
  • Web 自動化測試案例(入門級)——關(guān)閉某視頻網(wǎng)站彈出廣告以及打開登錄框輸入內(nèi)容

    Web 自動化測試案例(入門級)——關(guān)閉某視頻網(wǎng)站彈出廣告以及打開登錄框輸入內(nèi)容

    人生苦短,我用Python。許久沒寫博客了,今天又是久違的參與話題的討論,話題的內(nèi)容是: 如何入門 Python 的? 這個話題對于我來說有點小尷尬,因為我沒有系統(tǒng)的學習過 Python 這門語言,只不過在寫些算法題、小demo接觸過,還有就是幫朋友搞大數(shù)據(jù)作業(yè)時(爬取數(shù)據(jù)、分析

    2024年02月06日
    瀏覽(26)
  • js 正則表達式 驗證 ip列表--詳情:頁面中一個輸入框,可輸入1個或多個IP,使用英文逗號隔開...

    var ? isIp?=? function ? (){ ???? ? var ?? regexp?=?/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/; ???????????? ? ???? ? return ?? function ? (value){ ???????? ? var ?? valid?=?regexp.test(value); ???????? ? if ? (!valid){ ? //首先必須是?xxx.xxx.xxx.xxx?類型的數(shù)字,如果不是,返回false ??

    2024年02月11日
    瀏覽(24)
  • 通過訓練NLP制作一個自己的簡易輸入法

    通過訓練NLP制作一個自己的簡易輸入法

    最近開始研究NLP,然后根據(jù)手寫CV UP主的視頻,寫了一個N Gram的NLP模型,算是該領(lǐng)域里的hello world吧。然后我又添加了幾行代碼實現(xiàn)了一個 非常簡易的輸入法 。 項目說明: 數(shù)據(jù)集可以自創(chuàng),導入txt文件即可; 單詞聯(lián)想功能:輸入前兩個單詞,預測(聯(lián)想)第三個單詞【也就是

    2024年02月08日
    瀏覽(19)
  • 我是如何在react中把一個集成了html,css的內(nèi)容放到頁面中的

    首先把html,css內(nèi)容進行一個變量化,然后利用useState()去初始化一個變量,最后同通過一個標簽屬性就好了dangerouslySetInnerHTML={變量} 通過這樣我把 typora 導出的 html 就可以直接放到上面展示了。

    2024年02月05日
    瀏覽(28)
  • css新聞列表案例(li標簽和a標簽各自控制一個背景圖片)

    !DOCTYPE html html lang=\\\"en\\\" head ? meta charset=\\\"UTF-8\\\" ? meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\" ? meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\" ? title新聞列表/title ? style ? ? * { ? ? ? margin: 0; ? ? ? padding: 0; ? ? ? box-sizing: border-box; ? ? } ? ? li { ? ? ? list-style: none; ? ? } ?

    2024年01月19日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包