Node를 기반으로 한 Isomorphic React/Redux 앱을 만들기 시작했습니다. 이 프로젝트의 요구 사항 중 하나는 "모바일"및 "데스크톱"뷰를 기반으로 특정 구성 요소를 "적응 형"렌더링하는 것입니다. 필자는 Redux 액션과 감속기를 구현하여 상태에서 미디어 쿼리 ("작은", "중간", "큰")에 기반한 사용자보기에 대한 화면 정보를 저장합니다. 크기를 변경하면 상태/저장소가 업데이트됩니다. 기본 상태는 "작음"입니다. 화면 크기에 따라 두 가지 다른 버전에서 "적응"렌더링해야하는 구성 요소에서 React/Redux 동형/서버 측 렌더링 및 미디어 쿼리
const defaultState = {
isMobile: true,
isTablet: false,
isDesktop: false,
sizes: {
small: true,
medium: false,
large: false,
huge: false,
},
};
, 나는 단순히 수행
경우 (작은) 반환 variation1의
경우 (중간) return variation2
모두 작동합니다.
내 애플 즉, 마크 업 서버 측 또한 렌더링 의미 동형 :
는 지금은 두 가지 문제에 직면하고있다. 서버는 사용자의 브라우저 및 미디어 쿼리에 대해 아무것도 모릅니다. 따라서 내 기본 상태가 "작음"이므로 서버는 항상 "variation1"을 렌더링합니다. node-server는 사이트의 시작점입니다. 렌더링이 "지연"(미들웨어?)해야하고 React 앱이 "전달"되기 전에 서버가 클라이언트의 브라우저 너비에 대한 정보를 클라이언트에서 가져와야합니다. 어떻게하면이 문제를 해결할 수 있을까요?렌더링이 상태를 기반으로하기 때문에 브라우저 크기가 "데스크톱"인 경우에도 "변동 1"로드를 항상 몇 밀리 초 (깜박임) 동안 볼 수 있습니다. 이것은 현재 화면 너비로 상태가 업데이트되기 전에 JS 검색에 몇 밀리 초가 걸리기 때문입니다. 나는 이것이 위의 문제와 기본 상태와 함께하는 것 같아요.
1에 대한 해결책을 찾지 못했습니다. 그러나 뭔가가 동형이고 반응 형/적응 형이어야합니다.
"variation1"이 무엇인지 궁금합니다. 귀하의 질문과 관련이 있는지 여부는 확실하지 않지만, 대안의 변형 일뿐입니다. 다른 일이 발생하고 있습니까? –
"변형 1"과 "변형 2"는 동일한 데이터를 공유하지만보기가 다르게 나타나고 또한 다른 방식으로 작동합니다. 1은 아코디언과 같은 물건이고 2는 정적 인 물건이다. 내가 생각하는 질문과는 관련이 없다. 위에서 설명한 문제가 더 일반적입니다. – Krad