精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

事半功倍!這5個(gè)React應(yīng)用程序庫(kù)不要錯(cuò)過(guò)……

開發(fā) 前端
編輯 搜圖或許你一直在從頭開始構(gòu)建React應(yīng)用程序,這當(dāng)然無(wú)可厚非。但當(dāng)你遇見了今天要介紹的這些庫(kù),一定會(huì)感嘆相見恨晚!

編輯 搜圖或許你一直在從頭開始構(gòu)建React應(yīng)用程序,這當(dāng)然無(wú)可厚非。但當(dāng)你遇見了今天要介紹的這些庫(kù),一定會(huì)感嘆相見恨晚!

React最令人喜愛的地方是,沒有固定的方法來(lái)構(gòu)建應(yīng)用程序。開發(fā)人員可以自由選擇要使用的庫(kù)和要遵循的模式,你可以隨意去實(shí)現(xiàn)自己天馬行空的想法。

[[320552]]

在這里所創(chuàng)建的大多數(shù)應(yīng)用程序,無(wú)論是用于工作還是個(gè)人項(xiàng)目,都是從相同的庫(kù)開始的。

利用React社區(qū),你不必再耗時(shí)另起爐灶,可以花更多的時(shí)間為用戶提供價(jià)值。

所以千萬(wàn)不要錯(cuò)過(guò)呀~

1. Formik

面對(duì)現(xiàn)實(shí)吧,幾乎所有的網(wǎng)絡(luò)應(yīng)用程序都有表單,這是一件很棘手的事情。

對(duì)于用戶來(lái)說(shuō),沒有什么比表單不能正常工作,或在錯(cuò)誤驗(yàn)證后重置,再次輸入所有信息更讓人沮喪的了。表單正確,是網(wǎng)絡(luò)應(yīng)用程序中讓用戶擁有良好體驗(yàn)的關(guān)鍵。

那就意味著:

  • 表單字段應(yīng)具有客戶端驗(yàn)證。
  • 字段在用戶“觸摸”或表單提交之前不應(yīng)顯示錯(cuò)誤。
  • 無(wú)效提交時(shí),表單狀態(tài)不應(yīng)為“丟失”或“重置”。
  • 提交后,表單應(yīng)該進(jìn)行異步(服務(wù)器端)驗(yàn)證。

自己編寫一個(gè)處理所有這些事情的組件是相當(dāng)復(fù)雜的。需要跟蹤所有表單值,以及所有表單字段的“觸摸”狀態(tài),甚至包括 “錯(cuò)誤”。

此外,還需要構(gòu)建表單提交的邏輯。這些都需要足夠通用,以便在整個(gè)應(yīng)用程序中重用。沒有人想在登錄表單、注冊(cè)表單、地址表單等等中一遍遍重復(fù)它。

所以,使用React社區(qū)的一個(gè)流行庫(kù),是比自己構(gòu)建更好的選擇。

Formik是JaredPalmer開發(fā)的一個(gè)庫(kù),在這里,表單編寫變得輕而易舉。

2. 測(cè)試庫(kù)

測(cè)試省了很多時(shí)間。當(dāng)筆者創(chuàng)建一個(gè)復(fù)雜的特性或組件時(shí),總是在設(shè)計(jì)、產(chǎn)品和開發(fā)之間“游蕩”。設(shè)計(jì)師可能會(huì)要求進(jìn)行視覺或UX更改,產(chǎn)品部門可能要求更改UX。筆者只得不斷地反復(fù)、重構(gòu)和更新組件。

通過(guò)確保組件或特性的正確測(cè)試,可以確保這種重構(gòu)不會(huì)允許回歸潛入代碼庫(kù)。它節(jié)省了大量的人工測(cè)試時(shí)間,這給了人們更多信心。

涉及到測(cè)試React應(yīng)用程序時(shí),有一個(gè)黃金標(biāo)準(zhǔn):testing-library/react,也稱為react-testing-library。它已經(jīng)內(nèi)置在create-react-app中,所以入門就變得很簡(jiǎn)單啦。

使用testing-library,可以從用戶的角度測(cè)試組件。

什么意思?下面用一個(gè)實(shí)際的例子來(lái)說(shuō)明。

在這個(gè)示例中,筆者為一個(gè)簡(jiǎn)單的注冊(cè)表單編寫了一個(gè)測(cè)試。它要求用戶提供姓名、電子郵件和密碼。這些都是必填字段,如果省略了任何一項(xiàng),那么表單應(yīng)該在提交時(shí)顯示一個(gè)錯(cuò)誤。

  1. import {render, fireEvent } from "@testing-library/react"; 
  2. import userEvent from "@testing-library/user-event"; 
  3. import { SignupForm } from "./Form";describe("SignupForm",() => { 
  4.   it("should show an error whenpassword is omitted", () => { 
  5.     const renderrendered =render(<SignupForm />); 
  6.     const nameInput =rendered.queryByLabelText("Name"); 
  7.     userEvent.type(nameInput, "JohnSmith"); 
  8.     const emailInput =rendered.queryByLabelText("Email"); 
  9.     userEventtype(emailInput, "john@smith.net"); 
  10.     const submitButton =rendered.queryByText("Submit"); 
  11.     userEvent.click(submitButton); 
  12.     expect( 
  13.       rendered.queryByText("Pleaseinput your password") 
  14.     ).toBeInTheDocument(); 
  15.   }); 
  16. }); 

如你所見,首先使用react-testing-library呈現(xiàn)注冊(cè)表單。

之后輸入姓名與郵箱。

之后點(diǎn)擊提交。

最后,出現(xiàn)了“請(qǐng)輸入您的密碼”。

這個(gè)測(cè)試中的一切都基于用戶如何與表單交互。可以重構(gòu)表單以使用不同的輸入,將其拆分成多個(gè)react組件,所有這些都不會(huì)破壞測(cè)試。

3. CSS-Modules和Classnames

當(dāng)筆者開始一個(gè)新的React項(xiàng)目時(shí),通常會(huì)選擇CSS-Modules。create-react-app中內(nèi)置了支持,很容易上手。

當(dāng)然,可以通過(guò)遵循BEM來(lái)避免依賴,但是需要學(xué)習(xí)如何使用BEM。CSS-Modules提供了可預(yù)測(cè)的、范圍有限的、清晰的CSS。

筆者喜歡將classnames和CSS-Modules一起使用。先看下面這段代碼:

  1. constclassName = 'button ' + props.hasError ? 'error' : '';return ( 
  2.  <button className={classname}{...props} /> 
  3. ); 

有了classnames,可以進(jìn)行簡(jiǎn)化,然后變成這樣:

  1. constButton = props => ( 
  2.   <button 
  3.    className={classnames("button", { error: props.hasError })} 
  4.     {...props} 
  5.   /> 
  6. ); 

甚至可以將它與CSS-Modules相結(jié)合:

  1. importstyles from './Button.module.css';const Button = props => ( 
  2.   <button 
  3.     className={classnames(styles.button,{ [styles.error]: props.hasError })} 
  4.     {...props} 
  5.   /> 
  6. ); 

有作用域,易于編寫CSS,就問你香不香!

4. Downshift

也許你會(huì)問,為什么要使用外部庫(kù)來(lái)創(chuàng)建像下拉列表或選擇輸入這樣簡(jiǎn)單的東西呢?

構(gòu)建一個(gè)基于鼠標(biāo)單擊打開或關(guān)閉的組件確實(shí)非常簡(jiǎn)單。但與許多前端任務(wù)一樣,困難的不僅僅是構(gòu)建組件。

創(chuàng)建一個(gè)大量依賴屏幕閱讀器的互聯(lián)網(wǎng)用戶可訪問和可用的下拉列表不簡(jiǎn)單,讓它在keyboardusers中正常工作并非易事。

這就是筆者喜歡使用downshift的原因。它具有這樣的可訪問性,并可自行選擇其他的功能與形式。

[[320553]]

圖源:unsplash

當(dāng)筆者開始一個(gè)新的React應(yīng)用程序時(shí),總會(huì)安裝這些庫(kù),省時(shí)省力,豈不美哉?

Formik能更快編寫漂亮的表單。

測(cè)試庫(kù) 有助于編寫耐用的集成測(cè)試,為應(yīng)用程序提供信心。

CSS Modules 和 classnames 用于編寫有作用域的CSS。

Downshift 可以創(chuàng)建可訪問的組合框和選擇輸入,而無(wú)需覆蓋默認(rèn)樣式。

這樣的神器,你值得擁有!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2013-04-22 09:21:43

2023-04-11 16:31:10

開發(fā)React 庫(kù)Web

2021-02-06 10:27:51

Linux發(fā)行版操作系統(tǒng)

2023-11-27 19:22:24

Python庫(kù)編程語(yǔ)言

2020-10-14 15:05:02

React應(yīng)用程序

2021-05-05 10:06:09

React應(yīng)用程序微前端

2020-08-17 17:22:34

VSCode插件開發(fā)編碼

2022-05-20 15:27:41

React工具Vue

2020-12-16 15:37:19

Python編程語(yǔ)言開發(fā)

2021-10-28 19:21:56

GolangGo變量

2021-07-14 17:39:46

ReactRails API前端組件

2019-08-28 07:28:13

React應(yīng)用程序代碼

2020-10-10 10:30:31

JavaScript開發(fā)技術(shù)

2014-08-28 14:09:40

AppAndroid Wea應(yīng)用

2021-09-22 09:14:33

Linux編程Visual Stud

2010-01-27 17:36:24

C++程序庫(kù)

2013-08-15 13:29:52

Moco程序庫(kù)設(shè)計(jì)

2020-11-17 16:22:45

開源工具報(bào)表

2020-04-17 10:32:59

在線軟件文檔工具代碼

2010-01-19 09:39:43

C++標(biāo)準(zhǔn)程序庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产日本精品| 黄色精品免费看| 亚洲成人资源| 亚洲精品午夜精品| 亚洲综合在线网站| 一级毛片视频在线| 国产999精品久久| 国产成人精品电影| 久久久久麻豆v国产| gogo人体一区| 在线观看成人免费视频| 中国一级大黄大黄大色毛片| 五月婷婷在线播放| 精品一区二区在线观看| 97av视频在线| 小嫩苞一区二区三区| 久久夜色电影| 在线播放中文字幕一区| 国产肥臀一区二区福利视频| 超碰在线caoporen| 久久久久久久精| 99九九视频| 中文无码精品一区二区三区| 亚洲激情社区| 久久色在线播放| 日韩精品卡通动漫网站| 久久国产精品免费一区二区三区| 狠狠综合久久av一区二区小说| 天堂一区二区三区 | 国内三级在线观看| 国产精品一区在线| 国产精品久久久久久久久男| 国产小视频在线观看免费| 日韩一区二区在线免费| 亚洲娇小xxxx欧美娇小| 18禁一区二区三区| 免费成人黄色网| 色综合久久99| 你真棒插曲来救救我在线观看| 色的视频在线免费看| 久久综合久久鬼色| 久草精品电影| 免费观看毛片网站| 国产乱淫av一区二区三区| 国产精品视频网站| 波多野结衣电影在线播放| 亚洲精品四区| 国外成人在线播放| 日韩av一区二区在线播放| 欧美粗暴jizz性欧美20| 久久久精品美女| 亚洲毛片亚洲毛片亚洲毛片| 欧美日韩国产传媒| 一区二区三区www| 国产ts在线播放| 伊人久久大香线蕉综合网站| 精品视频www| 日韩精品卡通动漫网站| 女人av一区| 亚洲欧美制服综合另类| 国产三级av在线播放| 欧美一区成人| 亚洲国产日韩a在线播放| 在线视频不卡一区二区三区| 波多野结衣在线网站| 91麻豆成人久久精品二区三区| 国产亚洲一区二区三区在线播放 | 欧美日韩视频在线一区二区| 中文字幕在线观看第三页| 国产综合色区在线观看| 在线观看欧美日本| 手机av在线网| 日韩精品成人在线观看| 日韩精品一区国产麻豆| 欧美xxxx日本和非洲| 国产精品一区二区中文字幕| 日韩福利视频在线观看| 无码人妻aⅴ一区二区三区69岛| 九九在线精品| 精品国产一区二区三区久久狼5月| 国产馆在线观看| 欧美在线黄色| 亚洲伊人一本大道中文字幕| 欧美性猛交xx| 97久久综合精品久久久综合| 精品乱码亚洲一区二区不卡| 粉嫩av懂色av蜜臀av分享| 亚洲性视频大全| 自拍偷拍亚洲区| 真实国产乱子伦对白在线| 激情综合激情| 日韩美女视频中文字幕| 亚洲天堂一二三| 国产91精品露脸国语对白| 精品视频导航| 8888四色奇米在线观看| 亚洲伊人伊色伊影伊综合网| 日韩手机在线观看视频| 99re8精品视频在线观看| 亚洲国产女人aaa毛片在线| 高潮毛片无遮挡| 91av精品| 国产成人jvid在线播放| 国产高潮流白浆喷水视频| 2023国产精品自拍| 亚洲成人蜜桃| 91福利在线尤物| 色综合久久久久久久久| 青娱乐精品在线| 一道本一区二区三区| 久久国产精品首页| 9i精品福利一区二区三区| 国产一区二区三区四区在线观看| 久久香蕉综合色| av色综合久久天堂av色综合在| 日韩欧中文字幕| 中文字幕一二三区| 日韩夫妻性生活xx| 91精品国产自产91精品| av片免费播放| 国产亚洲成aⅴ人片在线观看 | 国产成人拍精品视频午夜网站| 亚洲资源在线播放| 26uuu色噜噜精品一区二区| 潘金莲一级淫片aaaaa免费看| jizz内谢中国亚洲jizz| 精品免费99久久| 杨钰莹一级淫片aaaaaa播放| 视频一区中文字幕| 激情小说综合网| 日本三级韩国三级欧美三级| 欧美欧美欧美欧美| 级毛片内射视频| 久久精品中文| 欧美精品成人一区二区在线观看| 波多野结衣中文在线| 欧美一区二区三区视频在线 | 日韩一级免费视频| 一区二区三区欧美亚洲| 欧美成人手机在线视频| 日韩理论电影| 国产美女精品视频免费观看| 国产1区2区3区在线| 在线免费精品视频| 六月婷婷七月丁香| 噜噜噜躁狠狠躁狠狠精品视频 | 精品一区在线| 欧美一二三视频| 日韩精品系列| 日韩欧美亚洲综合| 国产精品三级在线观看无码| 亚洲女人av| 欧美日韩国产一二| 在线精品亚洲欧美日韩国产| 亚洲免费一级电影| 国产精品视频123| 久久久久久久久久电影| 人妻无码视频一区二区三区 | 亚洲欧洲第一视频| 中文字幕精品无| 国产欧美一区在线| 污污的网站免费| 天天做天天爱天天综合网2021| 国产视频福利一区| 成人免费看片| 精品免费视频.| 中文字幕亚洲高清| 久久免费看少妇高潮| 亚洲成色www.777999| 99久久亚洲精品蜜臀| 91在线观看免费网站| 性直播体位视频在线观看| 精品电影一区二区| 亚洲精品午夜国产va久久成人| 久久麻豆一区二区| 麻豆三级在线观看| 欧美精品一卡| 久久亚洲国产精品日日av夜夜| 在线日本欧美| www日韩欧美| 欧美一级在线免费观看| 欧美小视频在线| av资源在线免费观看| 高清久久久久久| 污污视频网站免费观看| 一区二区在线| 久久99精品久久久久久久青青日本 | 中文字幕av无码一区二区三区| 亚洲免费av观看| 一本加勒比波多野结衣| 人人精品人人爱| 久久久天堂国产精品| 亚洲精品蜜桃乱晃| 91免费的视频在线播放| 末成年女av片一区二区下载| 色爱精品视频一区| 免费激情视频网站| 欧美日韩精品欧美日韩精品一 | 欧美激情综合| 欧美日韩一区二区三| 免费一区二区三区在线视频| 欧美一区二区三区…… | 中文字幕中文字幕一区二区| 无码人妻aⅴ一区二区三区玉蒲团| 久久午夜视频| 少妇大叫太大太粗太爽了a片小说| 国产欧美一区| 国产精品伊人日日| 四虎国产精品永久在线国在线| 久久久亚洲影院你懂的| 婷婷成人激情| 亚洲精品第一国产综合精品| 国产又粗又猛又爽又黄视频| 狠狠躁夜夜躁久久躁别揉| 老湿机69福利| 国产欧美日韩综合精品一区二区| 国产精品嫩草69影院| 麻豆视频一区二区| 久久久久人妻精品一区三寸| 欧美 日韩 国产精品免费观看| 明星裸体视频一区二区| 中文无码日韩欧| 国产欧美精品xxxx另类| 美女100%一区| 欧美精品videos另类日本| 999在线视频| 一本一本久久a久久精品综合小说| 免费观看黄色av| 精品少妇一区二区三区日产乱码| 一本到在线视频| 欧美无乱码久久久免费午夜一区| 国内免费精品视频| 亚洲线精品一区二区三区 | 精品久久久久久久久久| 欧美日韩国产精品综合| 国产精品毛片久久久久久| 亚洲成人黄色av| 国产清纯白嫩初高生在线观看91 | 五月婷婷深爱五月| 久久高清国产| 日本黄色三级大片| 免费日韩av片| 播放灌醉水嫩大学生国内精品| 国语精品一区| 男人天堂av片| 极品av少妇一区二区| 免费看日本黄色| 欧美国产精品| 91嫩草国产丨精品入口麻豆| 伊人久久大香线| 51xx午夜影福利| 亚洲精品91| 久久亚洲国产成人精品无码区| 欧美91精品| 日韩国产小视频| 最新成人av网站| 成人免费aaa| 久久伊人亚洲| 国产三级三级看三级| 美女在线视频一区| 亚洲精品中文字幕乱码无线| 国产精品综合在线视频| 国产精品二区视频| 成人av影院在线| 国产又爽又黄无码无遮挡在线观看| 2017欧美狠狠色| 精品丰满少妇一区二区三区| 国产精品国产精品国产专区不蜜| 欧美一区免费观看| 亚洲自拍偷拍麻豆| 麻豆久久久久久久久久| 一本大道久久精品懂色aⅴ| 亚洲国产无线乱码在线观看| 在线综合视频播放| 欧洲成人一区二区三区| 亚洲片国产一区一级在线观看| 国产福利电影在线| 另类天堂视频在线观看| 欧美激情成人动漫| 青青在线视频一区二区三区| 欧美国产日韩电影| 444亚洲人体| 欧美天堂社区| 亚洲mv在线看| 韩国在线视频一区| 欧在线一二三四区| 国产精品亚洲第一| 粉嫩av蜜桃av蜜臀av| 国产精品入口麻豆九色| 久久视频免费看| 日本韩国欧美一区二区三区| 国产强伦人妻毛片| 日韩av最新在线| 欧美r级在线| 午夜伦理精品一区| 青青在线精品| 国产专区一区二区| 日韩一区电影| 99999精品视频| 国产一区二区在线观看免费| 女同毛片一区二区三区| 亚洲精品视频自拍| 蜜臀99久久精品久久久久小说| 欧美一区二区三级| 六十路在线观看| 久久久久久久久国产| 国产精品久久久久久吹潮| 91精品国产高清久久久久久91裸体 | 成人免费看片| 国产精品久久久久99| 国产精品国产| 国产成人精品免费看在线播放 | 99热这里只有精品99| 亚洲欧美一区二区激情| 男女在线视频| 国产日韩中文字幕| 免费成人高清在线视频theav| 国产91在线亚洲| 秋霞成人午夜伦在线观看| 性囗交免费视频观看| 亚洲人成影院在线观看| 波多野结衣黄色网址| 亚洲精品99999| 主播国产精品| 国产又爽又黄的激情精品视频| 免费久久久久久久久| 久久视频这里有精品| 国产jizzjizz一区二区| 911国产在线| 欧美激情一二三| 狠狠人妻久久久久久综合麻豆| 一区三区二区视频| heyzo一区| 亚洲最大的网站| 91麻豆精品国产91久久久平台| 久久精品一区二| 91社区在线播放| 日韩欧美三级在线观看| 欧美成人a∨高清免费观看| 免费a级人成a大片在线观看| 国产精品视频色| 欧美午夜精品一区二区三区电影| 日韩黄色片视频| 久久综合资源网| 久久夜色精品国产噜噜亚洲av| 亚洲精品乱码久久久久久金桔影视| 欧美aaa免费| 高清不卡日本v二区在线| 欧美久久视频| www.美色吧.com| 亚洲一区二区三区四区在线免费观看| 99热这里只有精品在线| 欧美乱大交xxxxx| 日韩精品一区国产| 2022中文字幕| 成人av在线播放网址| 日本最新中文字幕| 日韩久久免费电影| av免费在线一区| 亚洲一区二区精品在线| 老鸭窝一区二区久久精品| 性色国产成人久久久精品| 欧美乱妇20p| 色婷婷视频在线观看| 精品人妻一区二区三区麻豆91| 91久久线看在观草草青青| 亚洲色图另类小说| 51精品在线观看| 国产剧情一区| 久久久久久久久久久久91| 中文字幕在线一区| 精品国产亚洲av麻豆| 国语对白做受69| 亚洲亚洲免费| 无尽裸体动漫2d在线观看| 亚洲欧美电影一区二区| 成人免费公开视频| 欧美一区二区.| 国产精品久久久久9999赢消| 麻豆传媒在线看| 狠狠躁天天躁日日躁欧美| 麻豆网站在线| 国产精品区一区二区三含羞草| 乱人伦精品视频在线观看| 麻豆网址在线观看| 日韩av一区在线观看| jizzyou欧美16| 精品国产av无码一区二区三区| 91玉足脚交白嫩脚丫在线播放| 日本精品入口免费视频| 欧美激情在线观看| 精品国产a一区二区三区v免费| 一二三级黄色片| 精品国产91久久久久久老师| 最近高清中文在线字幕在线观看| 成人永久免费| 麻豆精品一区二区| 精品91久久久| 久久久成人精品视频| 欧美日韩一区二区三区不卡视频|