対象èªè
- JavaScriptã¨Webéçºã®åºç¤ã«ç解ãããæ¹
- Reactãç¨ããJavaScriptã¢ããªã±ã¼ã·ã§ã³éçºã®çµé¨è
åæç°å¢
ãçè ã®æ¤è¨¼ç°å¢ã¯ä»¥ä¸ã®éãã§ãã
- macOS Catalina 10.15.7
- Node.js 14.14.0ï¼npm 6.14.8
- React 17.0.0
- react-scripts 3.4.4
- Formik 2.2.1
ãããµãã¦ããããã©é£ãããå ¥åãã©ã¼ã ãã®ä¸ç
ãå ¥åãã©ã¼ã ã¯ãå¤ãã®Webã¢ããªã±ã¼ã·ã§ã³ã§æ¡ç¨ãããUIãã¿ã¼ã³ã§ãããã°ã¤ã³ãã©ã¼ã ã®ããã«å°ãªãæ å ±ãæ±ããã®ãããå½å¢èª¿æ»ã®ããã«å¤ãã®æ å ±ãæ±ããã®ã¾ã§ãã¤ã³ã¿ã¼ãããä¸ã«ã¯ãã¾ãã¾ãªå ¥åãã©ã¼ã ãåå¨ãã¾ãã
ãä¸è¬ã«ãå¤ãã®æ¡ä»¶åå²ãä¼´ãããã°ã©ã ã¯è¤éã«ãªãå¾åã«ããã¾ããå ¥åãã©ã¼ã ã®å ´åã¯ãåå ¥åæ¬ã®å 容ã®ãã§ãã¯ãé ç®å士ã®çµã¿åããã®ãã§ãã¯ãããã«å¿ããã¨ã©ã¼è¡¨ç¤ºã®å¤æ´ã¨ãã£ããããªãã¼ã·ã§ã³å¦çã§æ¡ä»¶åå²ãå¢å ããå¾åã«ããã¾ããé ç®æ°ã®å¤ãå ¥åãã©ã¼ã ã¯ãã·ã¹ãã éçºã®ä¸ã§é »åºãããã¿ã¼ã³ã§ããä¸æ¹ã常ã«ä¸å®ã®é£ãããããä¾®ããªãæ©è½ãªã®ã§ãã
ãReactãå°å ¥ãã¦ããå ´åã宣è¨çUIã®æ©æµã«ãã£ã¦ãããããè¤éãã¯ä½æ¸ããã¾ããUIã¨ãã¼ã¿ãåãé¢ãã¦ããã¼ã¿å´ã§ç¶æ 管çãè¡ããã¨ã«ãããç¨åº¦å°å¿µãããããªãããã§ããã¨ã¯ãããReactã使ã£ã¦ããã¨ãã¦ããæ¡ä»¶åå²ãå¤ããªãã°ããã°ã©ã ã¯æ¬¡ç¬¬ã¨è¤éã«ãªã£ã¦ããã¾ãã
ããã®åé¡ã解æ¶ãããããå ¥åãã©ã¼ã ã®ç®¡çã«ç¹åããReactåãã®ã©ã¤ãã©ãªãéçºããã¦ãã¾ãã代表çãªãã®ã¨ãã¦ã次ã®ãã®ãããã¾ãã
ãã©ã®ã©ã¤ãã©ãªãåºæ¬çãªæ©è½ã«ã¤ãã¦ã¯ããããåããã¨ãã§ãã¾ãããããããã®ç¹é·ãããã®ã§ãç°¡åã«è§£èª¬ãã¦ããã¾ãããã
ãFormikã¯ãå®å ¨ã«Reactã³ã³ãã¼ãã³ãã®ããã«å®è£ ãããã©ã¤ãã©ãªã§ããReactãæã¤ç¶æ 管çã®æ©è½ãåäºåã«æ±ããããã«å®è£ ããã¦ãã¾ããReact Final Formã¯Final Formã¨ããå ¥åãã©ã¼ã åãç¶æ 管çã©ã¤ãã©ãªãå ã«ãã¦ãReactã³ã³ãã¼ãã³ãããæ±ããããããã«ã¤ã³ã¿ã¼ãã§ã¼ã¹ãæ´ãããã®ã§ããã³ã¢ã©ã¤ãã©ãªãReactããç¬ç«ãã¦ããã®ããã£ã¦ããµã¼ããã¼ãã£ã®ã©ã¤ãã©ãªä¸è¦§ãè¦ãã¨ãVueãWeb Componentsåãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãåå¨ãã¦ãããã¨ããããã¾ãã
ãReact Hook Formã¯ãããã®ä¸ã§ã¯æå¾çºã®ã©ã¤ãã©ãªã§ãããã®ååã®éããç¶æ
管çã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯React Hooksã«ããä½ããã¦ãã¾ããFormikãReact Final Formã¯ãå
¥åæ¬ã® onChange
å±æ§ã¨value
å±æ§ã使ã£ã¦ãã©ã¼ã ã®ç¶æ
ãéæç£è¦ãããå¶å¾¡ãããã³ã³ãã¼ãã³ããã¨å¼ã°ããæ¹å¼ã§ç¶æ
管çãè¡ã£ã¦ãã¾ããããReact Hooks Formã®å ´åã¯ç¶æ
管çãDOMèªèº«ã«ä»»ãããéå¶å¾¡ã³ã³ãã¼ãã³ããã®æ¹å¼ã§å
¥åãã©ã¼ã ãæ±ããã®ã大ããªç¹é·ã§ãã
ãæ¬è¨äºã§ã¯ãFormikã«ã¤ãã¦è§£èª¬ãã¾ããæ¬è¨äºã§é°å²æ°ãã¤ãããããæ¥æ¬èªããã¥ã¡ã³ããããReact Hook Formã«ãææ¦ãã¦ã使ç¨æãæ¯ã¹ã¦ã¿ãã®ãããã§ãããã
Formikã¨ã¯
ãFormikã¯ãFormium社ãéçºãã¦ãããå ¥åãã©ã¼ã éçºæ¯æ´ã©ã¤ãã©ãªã§ãã

ãFormikã«ã¯2ã¤ã®å´é¢ãããã¾ãã
- UIã©ã¤ãã©ãª: å ¥åæ¬ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã®UIã³ã³ãã¼ãã³ããæä¾ãã
- ç¶æ 管çã©ã¤ãã©ãª: ããªãã¼ã·ã§ã³çã§çºçããæ¡ä»¶åå²ã®è¤éãã管çãã
ãææ©ãå ¥åãã©ã¼ã ãçµã¿ä¸ãããå ´åã«ã¯ãUIã©ã¤ãã©ãªã¨ãã¦ã®å´é¢ãå½¹ç«ã¡ã¾ããã¾ããç¶æ 管çã©ã¤ãã©ãªã¨ãã¦ã®Formikã¯ãFormik以å¤ã®UIã©ã¤ãã©ãªãæä¾ããå ¥åæ¬ã¨ãçµã¿åããããã¨ãã§ãã¾ããæ¬è¨äºã§ã¯ãå®ç¨ä¸ã®æ±ç¨æ§ãé«ããç¶æ 管çã©ã¤ãã©ãªã¨ãã¦ã®å´é¢ã«ç¹ã«çç®ãã¦è§£èª¬ãã¾ãã
ã»ããã¢ãã
ã使ãæ¹ã®è§£èª¬ãå§ããåã«ãã¾ãã¯åä½ç¢ºèªã®ç°å¢ä½ãããã¾ããããæ¬è¨äºã§ã¯Create React Appã§åä½ç°å¢ãä½ãã¾ãï¼ãªã¹ã1ï¼ã
$ npx create-react-app formik-sample
ã次ã«ãformikãã¤ã³ã¹ãã¼ã«ãã¾ãã
$ npm install formik --save
ãããã§ã»ããã¢ããã¯å®äºã§ãã