【发布时间】:2019-10-28 00:48:54
【问题描述】:
我想使用 react 制作一个响应式网站,我应该使用媒体查询来更改布局并将移动设备中某些组件(如常规 html 和 css)的显示设置为“无”,还是在反应中进行而不是' t 渲染该组件而不是不使用 css 显示它?
例如,对于菜单,如果用户单击菜单按钮,则将菜单的显示属性从“无”更改为“阻止”
<ul id="menu">
<li>one</li>
<li>one</li>
</ul>
在 DOM 节点的 classList 中切换“打开”
在css中
.menu li {
display: none;
}
.menu.open li {
display: block;
}
或者像这样, 使用状态,如果用户单击菜单按钮,则更改状态并做出反应以呈现菜单
[open,setOpen] = useState(false);
open?<Menu />:'';
哪一个是更好的方法?推荐哪一个
还有一个问题,在 react 中使用 'refs' 访问 DOM 节点比使用传统的 document.getElementById() 更好?
【问题讨论】:
-
从概念上讲,最好只创建您实际使用的组件...我会让您的应用在全球范围内知道它是在移动视图还是桌面视图中,然后根据该变量构建应用程序。跨度>
标签: css reactjs responsive-design media-queries responsive