React特征學(xué)習(xí)之Form格式示例詳解
Form 樣式
首先來(lái)看一個(gè)簡(jiǎn)單Form, 式樣如下
import * as React from 'react'; const LoginForm = () => { return ( <form> <div> // Notice: 這里要用htmlFor,相當(dāng)于id <label htmlFor="email">Email</label> <input id="email" type="text" /> </div> <div> <label htmlFor="password">Password</label> <input id="password" type="password" /> </div> <button>Submit</button> </form> ); }; export { LoginForm };
屏幕顯示如下
若給以上Form加入用戶輸入, 可引入handleSubmit指令,并設(shè)置onSubmit事件觸發(fā),具體如下
(關(guān)于用戶輸入View => App單向數(shù)據(jù)流,可參考相關(guān)文章 - 學(xué)習(xí)React的特征(一) - 單向數(shù)據(jù)流
import * as React from 'react'; const LoginForm = () => { // handleSubmit here const handleSubmit = (e) => { // preventDefault用于防止部分瀏覽器一些默認(rèn)的不必要的行為 event.preventDefault(); }; return ( // onSubmit here <form onSubmit={handleSubmit}> <div> <label htmlFor="email">Email</label> <input id="email" type="text" /> </div> <div> <label htmlFor="password">Password</label> <input id="password" type="password" /> </div> <button type="submit">Submit</button> </form> ); }; export { LoginForm };
接著,進(jìn)一步獲取用戶的輸入, 可通過(guò)e.target.elements來(lái)抓取
import * as React from 'react'; const LoginForm = () => { const handleSubmit = (e) => { e.preventDefault(); // 獲取input elements const email = e.target.elements.email.value; const password = e.target.elements.password.value; alert(email + ' ' + password); }; return ( <form onSubmit={handleSubmit}> <div> <label htmlFor="email">Email</label> <input id="email" type="text" /> </div> <div> <label htmlFor="password">Password</label> <input id="password" type="password" /> </div> <button type="submit">Submit</button> </form> ); }; export { LoginForm };
屏幕顯示如下
點(diǎn)擊Submit, 顯示如下
React hook
或許用React hook更簡(jiǎn)潔優(yōu)雅些 , 引入useState管理email, password狀態(tài)
import * as React from 'react'; const LoginForm = () => { // Add hooks here const [email, setEmail] = React.useState(''); const [password, setPassword] = React.useState(''); const handleEmail = (e) => { setEmail(e.target.value); }; const handlePassword = (e) => { setPassword(e.target.value); }; const handleSubmit = (e) => { e.preventDefault(); alert(email + ' ' + password); }; return ( <form onSubmit={handleSubmit}> <div> <label htmlFor="email">Email</label> <input id="email" type="text" value={email} onChange={handleEmail} /> </div> <div> <label htmlFor="password">Password</label> <input id="password" type="password" value={password} onChange={handlePassword} /> </div> <button type="submit">Submit</button> </form> ); }; export { LoginForm };
到這里一個(gè)React Form雛形基本完成,當(dāng)然Form遇到的問(wèn)題遠(yuǎn)不止這些, 后續(xù)會(huì)再進(jìn)一步探討Form數(shù)據(jù)管理,驗(yàn)證等方案
以上就是React特征學(xué)習(xí)之Form格式示例詳解的詳細(xì)內(nèi)容,更多關(guān)于React特征Form格式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
React-Native實(shí)現(xiàn)ListView組件之上拉刷新實(shí)例(iOS和Android通用)
本篇文章主要介紹了React-Native實(shí)現(xiàn)ListView組件之上拉刷新實(shí)例(iOS和Android通用),具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07next-redux-wrapper使用細(xì)節(jié)及源碼分析
這篇文章主要為大家介紹了next-redux-wrapper使用細(xì)節(jié)及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02React應(yīng)用中避免白屏現(xiàn)象的方法小結(jié)
在開(kāi)發(fā)React應(yīng)用程序時(shí),我們都曾遇到過(guò)這樣的場(chǎng)景:一個(gè)未被捕獲的異常突然中斷了組件的渲染流程,導(dǎo)致用戶界面呈現(xiàn)出一片空白,也就是俗稱的“白屏”現(xiàn)象,本文將探討如何在React應(yīng)用中有效捕獲并處理這些錯(cuò)誤,避免白屏現(xiàn)象的發(fā)生,需要的朋友可以參考下2024-06-06詳解React項(xiàng)目如何修改打包地址(編譯輸出文件地址)
這篇文章主要介紹了詳解React項(xiàng)目如何修改打包地址(編譯輸出文件地址),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03react-three-fiber實(shí)現(xiàn)炫酷3D粒子效果首頁(yè)
這篇文章主要介紹了react-three-fiber實(shí)現(xiàn)3D粒子效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08react項(xiàng)目實(shí)踐之webpack-dev-serve
這篇文章主要介紹了react項(xiàng)目實(shí)踐之webpack-dev-serve,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09Redux DevTools不能顯示數(shù)據(jù)問(wèn)題
這篇文章主要介紹了Redux DevTools不能顯示數(shù)據(jù)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01在Ant Design Pro登錄功能中集成圖形驗(yàn)證碼組件的方法步驟
這篇文章主要介紹了在Ant Design Pro登錄功能中集成圖形驗(yàn)證碼組件的方法步驟,這里的登錄功能其實(shí)就是一個(gè)表單提交,實(shí)現(xiàn)起來(lái)也很簡(jiǎn)單,具體實(shí)例代碼跟隨小編一起看看吧2021-05-05