推荐使用:React Snuggle - 简洁高效的响应式网格布局组件
React Snuggle 是一款轻量级的React组件,它利用CSS Grid和少量JavaScript实现了一种类Masonry式的网格布局。这个库的设计理念是让所有组件紧密地填充可用的空间,就像一对恋人在床上依偎一样舒适。
技术特性
- maktub 响应式设计:无论屏幕大小,都能保持优雅的显示效果;
- flexible 定制化:你可以轻松调整元素如何排列和堆叠,无论你使用的是CSS-in-JS、css modules还是普通的CSS;
- unleash 兼容性:无论你钟爱哪种库,React Snuggle都能与之完美配合。
安装与使用
通过以下命令安装React Snuggle:
yarn add react-snuggle
然后在你的React应用中简单引入并使用:
import Snuggle from 'react-snuggle'
const List = () => (
<Snuggle>
<div>Item</div>
<div>Item</div>
...
</Snuggle>
)
选项与方法
Snuggle 提供了一些可定制的选项,如item、container、rowGap 和columnWidth,同时也提供了一个resize
方法,用于在动态加载或窗口大小改变时重新计算布局。
例如,在图片加载完成后调用resize
方法:
const Component = () => {
const snuggleRef = useRef()
const onLoad = () => {
if (snuggleRef.current) {
snuggleRef.current.resize()
}
}
return (
<Snuggle ref={snuggleRef}>
<img src="example.jpg" onLoad={onLoad} />
</Snuggle>
)
}
未来发展
React Snuggle 还在不断进化中,未来计划添加更多功能,包括元素跨列、过滤元素以及完善测试等。
许可协议
React Snuggle 遵循 MIT 许可协议。
致敬
特别感谢@andybarefoot分享的《Masonry style layout with CSS Grid》一文,为这个项目的诞生提供了灵感。
最后,React Snuggle由位于葡萄牙波尔图的数字工作室Significa开发。我们专注于交互设计和品牌发展,坚信好的设计理念可以解决大部分问题,提供有意义的设计解决方案来提升用户体验。
开始你的React Snuggle之旅,让你的组件更加亲密无间吧!