React 如何來處理表單

金木大大大發表於2023-12-13

  在React中,表單是用於收集使用者輸入的重要元件。React提供了一些特殊的元件和技術來處理表單。


  受控元件:


  在React中,可以將表單元素的值與元件的狀態進行繫結,從而實現受控元件。透過使用value屬性和onChange事件來實現雙向繫結。例如:


  import React,{useState}from'react';


  function MyForm(){


  const[name,setName]=useState('');


  const handleChange=(event)=>{


  setName(event.target.value);


  };


  return(


  <form>


  <input type="text"value={name}>


  <button type="submit">Submit</button>


  </form>


  );


  }


  在上述示例中,name狀態與輸入框的值進行了繫結,輸入框的值發生變化時,會觸發handleChange事件處理函式,更新name狀態的值。


  非受控元件:


  在某些情況下,可以使用非受控元件來處理表單。非受控元件將表單元素的值儲存在DOM中,而不是在元件的狀態中。例如:


  import React,{useRef}from'react';


  function MyForm(){


  const inputRef=useRef();


  const handleSubmit=(event)=>{


  event.preventDefault();


  console.log(inputRef.current.value);


  };


  return(


  <form >


  <input type="text"ref={inputRef}/>


  <button type="submit">Submit</button>


  </form>


  );


  }


  在上述示例中,使用useRef建立了一個引用inputRef,並將其繫結到輸入框上。在提交表單時,可以透過inputRef.current.value獲取輸入框的值。


  表單驗證:


  React並沒有提供內建的表單驗證功能,但可以使用第三方庫(如Formik、Yup等)來實現表單驗證。這些庫提供了豐富的驗證規則和錯誤處理機制,可以簡化表單驗證的過程。


  處理多個輸入:


  當需要處理多個輸入時,可以根據需要將每個輸入的值繫結到不同的狀態中。例如:


  import React,{useState}from'react';


  function MyForm(){


  const[name,setName]=useState('');


  爬蟲IP獲取


  const[email,setEmail]=useState('');


  const handleNameChange=(event)=>{


  setName(event.target.value);


  };


  const handleEmailChange=(event)=>{


  setEmail(event.target.value);


  };


  return(


  <form>


  <input type="text"value={name}>


  <input type="email"value={email}>


  <button type="submit">Submit</button>


  </form>


  );


  }


  在上述示例中,name和email分別對應兩個輸入框的值,並透過handleNameChange和handleEmailChange事件處理函式來更新狀態。


  以上是React中處理表單的基本介紹,React還提供了其他一些處理表單的方法和技術,如使用select元素、核取方塊、單選按鈕等。你可以進一步學習React官方檔案和其他教程,以深入瞭解React中的表單處理。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70032566/viewspace-2999863/,如需轉載,請註明出處,否則將追究法律責任。

相關文章