在 React 中处理媒体查询的另一种方式

在 React 中处理媒体查询的另一种方式

在当今世界,手机、笔记本电脑和台式机等电子产品具有各种尺寸和外形。没有人进行并且每个人都意识到的研究表明,当网站的响应式设计不佳时,流量会减少 80%。因此,处理适当的媒体查询应该是任何网站的首要任务。
在本文中,我想展示如何使用修复断点正确处理 React 项目中的媒体查询。与其随机破坏每个反应组件中的媒体查询,不如使用一个常量,然后在每个组件中导入它,如下所示:

 导出常量大小= {  
 xxs:'375',  
 xs: '480',  
 sm: '576',  
 MD:'768',  
 lg: '992',  
 minWidthHeader: '1050',  
 XL: '1200',  
 smallDesktop: '1366',  
 xxl: '1600',  
 }

现在,使用 style-component 聚合和创建 css 的好方法如下例所示:

 从 'styled-components/macro' 导入 { css, CSSObject }  
 接口尺寸{  
 xxs:字符串;  
 xs:字符串;  
 sm:字符串;  
 md:字符串;  
 lg:字符串;  
 minWidthHeader:字符串;  
 xl:字符串  
 小桌面:字符串;  
 xxl:字符串;  
 } 导出常量大小:ISizes = {  
 xxs:'375',  
 xs: '480',  
 sm: '576',  
 MD:'768',  
 lg: '992',  
 minWidthHeader: '1050',  
 XL: '1200',  
 smallDesktop: '1366',  
 xxl: '1600',  
 } 导出常量媒体 = Object.keys(sizes).reduce( (累加器:记录<string, Function>,标签:字符串)=> { const pxSize: string = sizes[label as keyof ISizes] 累加器[标签] = (args: CSSObject) =>css`  
 @media(最大宽度:${pxSize}px){  
 ${css(args)}  
 }  
 `  
 返回蓄能器;  
 }, {}  
 )

最后,您可以导入“媒体”功能并使用它,如下图所示:

 从“样式组件”导入样式;  
 从“../../styles/media”导入{媒体}; const Wrapper = styled.div`  
 显示:网格;  
 网格模板列:1fr 1fr 1fr 1fr;  
 网格间隙:10px;  
 & > 分区{  
 宽度:300px;  
 边框:1px 实心;  
 高度:300px;  
 背景颜色:粉红色;  
 }  
 ${媒体.md`  
 网格模板列:1fr 1fr;  
 `}  
 ${媒体.sm`  
 宽度:100%;  
 网格模板列:1fr;  
 `}; `; 常量主页 = () => { 返回 ( <Wrapper>  
 <div>第 1 列</div>  
 <div>第 2 列</div>  
 <div>第 3 列</div>  
 <div>第 4 列</div>  
 </Wrapper>  
 )}; 导出默认主页;

如果您想查找参考,这里是此代码的存储库 https://github.com/viveksharmapoudel/clean-media-query .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38124/22032011

posted @ 2022-09-20 11:22  哈哈哈来了啊啊啊  阅读(124)  评论(0编辑  收藏  举报