[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails

Next.js v14ããServer Actionsãstableãªãªã¼ã¹ã¨ãªããéçºä½é¨ã ãã§ãªããã¦ã¼ã¶ä½é¨(ãã¤ãã¬ã¼ã·ã§ã³ã®å®äºãå¾ æ©ãããã©ã¼ã æä½ãã§ãããããã°ãã¬ãã·ãâ¢ã¨ã³ãã³ã¹ã¡ã³ããªã©)ã®åä¸ãè¦è¾¼ã¾ãã¾ã[1]ã ä»åã¯ãNext.jsã®Server Actionsãå®è£ ããä¸ã§æ³¨æããªããã°ãªããªãã»ãã¥ãªãã£æ¸å¿µäºé ã¨ãã®å¯¾çãææ¡ãã¾ãã Server Actionsã¨ã¯ formããsubmitãããéã®å¦ç(DBã®æ´æ°ç)ããµã¼ããµã¤ãã§éåæã§å®è¡ã§ããé¢æ°ã§ããReactã®Server Componentsã ãã§ãªãClient Componentsãããå¼ã³ã ããã¨ãã§ãã¾ããã¤ã¾ããformãsubmitãããéã®DBæ´æ°ãªã©ã®å¦çãããããã¨ã³ããã¤ã³ããç«ã¦ãã«é¢æ°ã¨ãã¦æ¸ããã¨ãã§ãã¾ãã[2] Server Actions(ã¾ãã¯Serv
Next.js App Routerã«ãããè¨è¨ããã¹ããã©ã¯ãã£ã¹ããçè ãªãã«ã¾ã¨ãã¾ããã
javascripter ã§ããããã¼ã§ã¯ããããã¯ãã®ãã¼ã³ãåããAutoReserve ã®éçºã«é¢ãã£ã¦ãã¾ãã ä»åã¯ãçè ã社å ã§æ¸ãã¦ããæè¡ã¬ã¤ãã©ã¤ã³ã«ã¤ãã¦ç´¹ä»ãã¾ãã ã¯ããã« ããã¼ã§ã¯ãé«å質ãªã³ã¼ããç¶æããéçºãã¼ã ã®æè¡ã¬ãã«åä¸ãå³ãããã社å ã§ç¶ç¶çã«æè¡Tipsãã¬ã¤ãã©ã¤ã³ã®æ´åã»èç©ãè¡ã£ã¦ãã¾ãã ãã¼ã 横æçã«ãæç¨ãªæè¡Tipsããã¹ããã©ã¯ãã£ã¹ã»ã³ã¼ãã£ã³ã°ã¬ã¤ãã©ã¤ã³ãªã©æ å ±ãNotionä¸ã«éç´ããèªç±ã«ã¨ã³ã¸ãã¢ãé²è¦§ã»ç·¨éã§ããããã«ãªã£ã¦ãã¾ãã ãã®åãçµã¿ã®ç®çã¯ä»¥ä¸ã®éãã§ãï¼ ã³ã¼ãå質ã®åä¸ã¨çµ±ä¸ éçºãã¼ã ã¡ã³ãã¼ã®æè¡ã¹ãã«åä¸ ãã©ããç´ããã§ã§ã¯ãªãããªããããä¿®æ£ãã¹ããã¾ã§ç解ãã¦ã人ãå¢ãã å¹ççãªéçºããã»ã¹ã®ç¢ºç« æ°ã¡ã³ãã¼ã®ãªã³ãã¼ãã£ã³ã°æ¯æ´ ä»åç´¹ä»ããããã¥ã¡ã³ã ä»åã¯ããã®ä¸ãããreac
import "./App.css"; import { Link, Route, Switch } from "wouter"; function Nav() { return ( <nav> <Link to="/">Home</Link> <br /> <Link to="/about">About</Link> </nav> ); } function Home() { return ( <div className="App"> <h2>Home</h2> <Nav /> </div> ); } function About() { return ( <div className="App"> <h2>About</h2> <Nav /> </div> ); } function App() { return ( <> <Switch> <Route path="/" compo
[beta] Next.jsã¯ã¤ãº2 ⢠<p>ã«ã¯ãªã«ã表示ãããã§ããããï¼ /app/page.tsx "use client"; import { useCallback, useEffect, useState } from "react"; export default function Home() { const [date, setDate] = useState(); const fetchDate = useCallback(async () => { const response = await fetch("/api"); const data = await response.json(); setDate(data.date); }, []); useEffect(() => { fetchDate(); }, [fetchDate]); return ( <
ã¯ããã« useEffect ã«ã¤ãã¦ããã£ã¡ã調ã¹ããã¨æã調ã¹ã¦ã¿ããå ¬å¼ããã¥ã¡ã³ãã®ã¾ã¨ãè¨äºã«ãªã£ã¦ããã useEffect åºç¤ç·¨ useEffect ã¨ã¯ Effect ãç¨ããã¨ã¬ã³ããªã³ã°ã®å¾ã«ã³ã¼ããèµ°ããããã¨ãã§ããReact å¤ã®ã·ã¹ãã ã®è¦ç´ ã¨åæãããã¨ãå¯è½ã«ãªãã ãªãå¿ è¦ã ã¾ããReact ã³ã³ãã¼ãã³ãã®äºç¨®é¡ã®ãã¸ãã¯ã«ã¤ãã¦æ´çããã ã¬ã³ããªã³ã° ã¬ã³ããªã³ã°ãããéãã³ã¼ãã¯propsã¨stateãåãåããå¤æããç»é¢ã§è¡¨ç¤ºãããJSXãè¿ããã³ã¼ãã®ã¬ã³ããªã³ã°ã¯çµæã®ã¿ãè¨ç®ããã¹ãã§ãã以ä¸ã®ãã¨ãããã¹ãã§ã¯ãªãã ã¤ãã³ããã³ãã© ã¤ãã³ããã³ãã©ã¯ã³ã³ãã¼ãã³ãã®ä¸ã«ããé¢æ°ã§ãInput Field ã®æ´æ°ãã¦ã¼ã¶ãä»ã®ç»é¢ã¸èªå°ãããçãåç´ãªè¨ç®ä»¥ä¸ã®å½¹å²ãæ ããã¤ãã³ããã³ãã©ã¯ã¦ã¼ã¶ã®è¡åï¼ãã¿ã³ã¯ãªãã¯çï¼ã«ããã
ææ¥ã2023/9/28ã«çºå£²ãããããããã¯ãããReactå®è·µå ¥éããç®æ¬ããã ãã¾ããã®ã§ãç°¡åã«ç®ãéããææ³ãæ¸ããã¨æãã¾ãã ããããã¯ãããReactå®è·µå ¥é ç®æ¬¡ ç®æ¬¡ ããªãç¶²ç¾ æ§ãé«ã 足ããªãæ å ±ããã£ãã ãããç®æã人ã®ããã®TypeScriptå ¥é Next.jsã«ã¤ãã¦ã次ã«èªãæ¬ã¯ããã¾ããï¼ è£è¶³ãããã¨ãã Create React Appã使ããªãé¸æè¢ããã Recoilããã¯éçºç¶æ³ãã¡ãã£ã¨å¿é React Routerã®ç¥èãæ´»ããã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯ããã ã¾ã¨ã ãã¾ã 2023.9.28 10:36è¿½è¨ ããªãç¶²ç¾ æ§ãé«ã ãã©ãã©ã¨èªãã§ã¿ã¦æããã®ã¯ãããªãæåºããããã§ãã¦ä¸å®ã®æ·±ã¿ãããæ¬ã ã¨ãããã¨ã§ããåºç社ã®ãµã¤ãã«ããç®æ¬¡ãè¦ã¦ã¿ã¾ãããã Chapter 1ãã¤ã³ãããã¯ã·ã§ã³ 1-1ãReactã¨JavaS
ã¯ããã« ãã®è¨äºã¯ãAlan Alickovicããã®èæ¸ãReact Application Architecture for Productionããã¾ã¨ãããã®ã«ãªãã¾ããAlanããã¨è¨ãã°Zennã§æã人æ°ã®ããè¨äºãbulletproof-reactãã®ä½è ã§ãããå½¼ã®projectããå¦ã¶ãã¨ã¯ã¨ã¦ãå¤ãå°è±¡ã§ãã ä»åç´¹ä»ããæ¬ã¯2023å¹´1æã«å ¬éããããããbulletproof-react以å¾ã®Reactã¢ããªã±ã¼ã·ã§ã³ã«ããããã¹ããã©ã¯ãã£ã¹ã®å®åº«ã¨ãªã£ã¦ãã¾ããã¾ããæ¬ã§æ±ããã¦ããã¢ããªã±ã¼ã·ã§ã³ã®ProjectãGitHubã§å ¬éããã¦ãããã¨ãããProjectãçºããã ãã§ãåå¼·ã«ãªãç¹ããããã¨æãã¾ãã æ³å®èªè Reactã®ã¢ã¼ããã¯ãã£ã模索ãã¦ããæ¹ ãã¹ãææ³ãCI/CDãªã©ã®ã¢ããªã±ã¼ã·ã§ã³è¨è¨ã«é¢å¿ãããæ¹ ä½¿ç¨ãããæè¡ã¨æ¬ã®æ§æ è¨
ä½ã®è©±ãã¨è¨ã㨠æ®æ®µãUI ã«é¢ãããªãããã¯ã¨ã³ãã®ã³ã³ãã¼ãã³ããä½ã£ã¦ããã¨ã³ã¸ãã¢ãããã³ãã¨ã³ãã®ã³ã¼ãã£ã³ã°ãç解ãããã¨ããã¨ãè²ã ã¨ç°æ¬¡å ãªä¸çã§æ··ä¹±ããï¼ã¨ãããä½ããã£ã¦ããã®ããããã«å¿ããï¼ã®ã§ãããã¯ã¨ã³ãã¨ã³ã¸ãã¢ã«ãããããã形㧠React ã®ä»çµã¿ï¼ã¡ã³ã¿ã«ã¢ãã«ï¼ãã¾ã¨ãã¦ã¿ã¾ãã*1ã ãã©ã¦ã¶ã®ç»é¢ã«æç»ãããåã ã®è¦ç´ ããã³ã³ãã¼ãã³ããã¨å¼ã¶ã èªåã§å®ç¾©ããã³ã³ãã¼ãã³ãã HTML ã¿ã°ã使ã£ã¦è¡¨ç¤ºãããã¨ãã§ããã ã³ã³ãã¼ãã³ãã¯é¢æ°ã¨ãã¦å®ç¾©ããããã®é¢æ°ã¯ãHTML ã¿ã°ã§æå®ãããæã®å±æ§å¤ãåãåã£ã¦ãã³ã³ãã¼ãã³ããå®éã«æç»ãã HTML ã®å¡ï¼React è¦ç´ ï¼ãè¿ããï¼ã¤ã¾ããã³ã³ãã¼ãã³ããæå®ãã HTML ã¿ã°ããã³ã³ãã¼ãã³ãããã®è¿ãå¤ã® React è¦ç´ ã§ç½®æããããï¼ Javascript ã®é¢æ°ã¯ã¯ãã¼ã¸
ãç¥ãã
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}