使用 React 进行响应式服务器端渲染

Responsive server side rendering with React

提问人:Shahar 提问时间:11/19/2015 更新时间:11/19/2015 访问量:1210

问:

我希望能够根据设备的宽度呈现不同的布局。

(即,当设备较小时,在元素的左侧显示图片,当设备较大时,在元素的顶部显示图片)。

当然可以通过matchMedia在客户端上使用,但是我正在使用服务器端渲染,希望保持渲染的一致性。

我能想到的最好的办法是使用 MobileDetect 并假设设备的宽度(基本上,如果它是手机......),但这仍然是一个假设。

有没有更好的方法?

响应式设计 ReactJS 服务器端

评论

2赞 kecer 11/19/2015
当然有更好的方法。当您可以使用 CSS 媒体查询时,为什么要解决服务器端的定位问题?想象一下,用户在一个小窗口中打开你的页面,然后他把它最大化。他会看到页面呈现不正确,必须重新加载它。听起来不方便。
0赞 Henrik Andersson 11/19/2015
你所走的这条路根本不是一个好主意。@kecers建议是做响应式网络的方法。
0赞 Shahar 11/19/2015
我正在广泛使用css媒体查询。但在这种情况下,布局大不相同......我可以使用的另一种解决方案是在两个不同的地方渲染图片两次,并根据媒体查询隐藏其中一个。但这似乎也不是那么好......
0赞 kecer 11/19/2015
如果您想以不同的方式处理移动设备,为什么不将它们重定向到子域或稍微不同的端点,在那里您将始终呈现修改后的布局?这应该为您和用户在使用该应用程序时省去麻烦
1赞 Shahar 11/19/2015
这当然是一种方式,到目前为止,我已经能够使用一种布局创建大约 80% 的网站,对移动设备进行非常小的更改。响应式网格和思维可以完成大部分工作。顺便说一句,重定向到子域与使用 MobileDetect 并根据用户代理更改布局非常相似,我在问题中已经提到过。

答: 暂无答案