Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React中的响应性设计_Reactjs_Responsive Design - Fatal编程技术网

Reactjs React中的响应性设计

Reactjs React中的响应性设计,reactjs,responsive-design,Reactjs,Responsive Design,我正在寻找一些关于今天构建完全响应的React应用程序时使用哪些库、组件和方法的建议 我应该基于钩子还是老派媒体的质疑? 也许有更好的解决方案?我建议使用组件库,对于最新的组件,响应组件库(如rsuitejs或材质设计组件)应该可以 链接: 看看或 或者你可以使用常规的CSS&为你的组件设计样式(我最喜欢的方式)像其他人提到的一样,有很多用于响应设计的包-CSS框架、React组件库等。使用flexbox和/或grid也不难推出自己的组件 就以反应为中心的方法而言,这里有一个非常有效的方法。它

我正在寻找一些关于今天构建完全响应的React应用程序时使用哪些库、组件和方法的建议

我应该基于钩子还是老派媒体的质疑?
也许有更好的解决方案?

我建议使用组件库,对于最新的组件,响应组件库(如rsuitejs或材质设计组件)应该可以

链接:

看看或


或者你可以使用常规的CSS&为你的组件设计样式(我最喜欢的方式)

像其他人提到的一样,有很多用于响应设计的包-CSS框架、React组件库等。使用flexbox和/或grid也不难推出自己的组件

就以反应为中心的方法而言,这里有一个非常有效的方法。它假设您正在使用SSR

  • 使用上下文API创建断点提供程序组件。它的工作是跟踪当前断点,并根据需要侦听resize事件以更改状态。在构造函数中,接受默认视口大小。这可以通过使用用户代理嗅探在服务器端填充

  • 使用断点上下文中的使用者公开当前视口大小。这可以用于基于视口有条件地加载组件,而不是渲染组件,然后使用CSS和媒体查询隐藏它们。通过这种方式,您发送的CSS/HTML更少,处理JS和CSS的时间也更少,对于较大的站点,它可以大大缩短加载时间。:)


  • 我刚刚发现了一个小的npm包,它实现了断点的提供者和使用者。基本上,通过以下方式揭示了该理念:

    我试过了,很简单。另外,与使用更大的材质ui或antd相比,它似乎是最轻巧的选择(这很好,但是如果您不使用它们的组件,或者您已经在使用一些没有断点的组件库,那么这将是一种过度杀伤力)

    还有一个关于如何使用它的非常简单的教程

    作为一个超级快速的“元示例”,您可以使用其
    断点提供程序
    包装React应用程序组件(最上面的),然后在包装组件的任何子组件中,您可以使用
    断点
    组件执行以下操作:

    <>
      <Breakpoint small down>
        <MySmallComponent />
      </Breakpoint>
      <Breakpoint medium up>
        <MyBigComponent />
      </Breakpoint>
    </>
    
    
    
    “small”是提供的五个自定义断点之一。“向下”表示这个或更小。类似的逻辑适用于“中等”和“向上”,意思是“中等大小或更大的屏幕”


    如果您想自己实现这一点,您应该在resize事件上使用一个侦听器执行一个提供程序组件。当你在google上搜索“Responsibility+react”时,你可以找到很多这样做的例子,但是有一个来自这个社区:)(请查看答案)

    material ui是响应的&它使用网格系统,几乎所有css库都可以使用useInitialProps与NextJS SSR页面一起工作?我遇到了一种情况,因为SSR没有使用.window,所以我需要动态导入页面或组件。@lakerskill类似的东西应该可以很好地工作:``静态异步getInitialProps({ctx}){const userAgentHeader=ctx.req.headers['user-agent'];返回{userAgentHeader};}“``@lakerskill也不确定该评论是否有助于解决您的问题,我以为您在询问如何使用nextjs将用户代理头传递给断点组件,但若你们只是在访问组件中的窗口时遇到问题,你们可以直接访问componentDidMount中的窗口,以确保我们在客户端而不是服务器上运行……希望这能有所帮助!谢谢。我得试一试。