Open jl917 opened 2 years ago
react-dom 중 render를 사용하지 않고 hydrate를 사용할 경우 css modules 스타일을 실시간으로 가져오지 못하는 경우가 있음. 초기 랜딩시 import './style.css' 방식으로 가져오기 필수
hydrate
❌ <h1 className={s.heading}>recoil count</h1>
✅ <h1 className="s_h">recoil count</h1>
✅ <h1 style={{color: 'red'}}>recoil count</h1>
vite 공홈에서 지정한 서버 사용시 css module 이슈 없음.
express 서버 빌드 필수.
react-router 서버단 StaticRouter 컴포넌트 사용 칼라이언트 BrowserRouter 컴포넌트 사용
req.originalUrl 사용할것.
react 17까지 suspense 사용시 ssr지원이 안됨
Error: ReactDOMServer does not yet support Suspense.
Loadable Components는 webpack만 지원. split, fallback(로딩)까지 처리 되지만 서버에서 컴포넌트를 불러 못옴
vite로 dev 모드 사용시 style 늦게 불러오는 이슈로 화면이 깜박이는 이슈가 있음. 빌드이후 css가 번들링 되어서 해결됨.
SSR同构难点
服务端开发:Node开发能力和掌握框架提供的服务端渲染技术 性能和监控:服务端渲染性能,服务端异常监控和处理 路由同构:如何同一套路由兼容Node环境和浏览器环境 请求和cookie:如何兼容两端请求,服务端缓存请求用户身份以及cookie的转发 状态数据共享:服务端store的如何共享给客户端 构建和部署:两端js的构建,Node服务的部署和客户端js的部署
Suspense react-router, react-query, recoil style
loadable https://loadable-components.com/