React | Center 组件

在 Flutter 中有 Center 组件,效果就是让子组件整体居中,挺好用。

React 中虽然没有对应的组件,但是可以简单封装一个:

  • index.less
css 复制代码
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  height: 100%;
}
  • index.tsx
ts 复制代码
import styles from './index.less';

interface CenterProps {
  children: React.ReactNode;
}

const Center: React.FC<CenterProps> = ({ children }) => {
  return <div className={styles.container}>{children}</div>;
};

export default Center;

使用:

ts 复制代码
import Center from './Center';

const CenterPage = () => {
  return (
    <div>
      good
      <div style={{ height: '200px', backgroundColor: 'green' }}>
        <Center>
          <div style={{ backgroundColor: 'orange' }}>
            <div
              style={{ backgroundColor: 'red', height: '50px', width: '100px' }}
            >
              古德古德
            </div>
            <div
              style={{ backgroundColor: 'blue', height: '50px', width: '60px' }}
            >
              古德2
            </div>
          </div>
        </Center>
      </div>
    </div>
  );
};

export default CenterPage;

效果:


补充:

Ant Design 的 Flex 组件也可以轻松让子组件居中,不过 5.10.0 版本才开始提供该组件:

https://ant-design.antgroup.com/components/flex-cn

相关推荐
1024肥宅5 分钟前
面试和算法:常见面试题实现与深度解析
前端·javascript·面试
Ashley_Amanda13 分钟前
JavaScript 中数组的常用处理方法
开发语言·javascript·网络
xier_ran19 分钟前
Agent基础:大模型交互与推理技术Prompt 工程、Function Calling、ReAct、Self-Refine
react.js·prompt·交互
BD_Marathon20 分钟前
Router_路由的基本使用
javascript
float_六七26 分钟前
行级与块级元素:核心区别与应用场景
开发语言·前端·javascript
毕设十刻39 分钟前
基于Vue的家教预约系统7fisz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
前端无涯41 分钟前
深度解析:fetch 与 Promise 结合实战及面试重点
前端·javascript
风舞红枫44 分钟前
node代理vue打包后的文件,实现本地测试
前端·javascript·vue.js·node.js
helloCat44 分钟前
记录CI/CD自动化上传AppGallery遇到的坑
android·前端·api
Yanni4Night1 小时前
使用URLPattern API构建自己的路由器 🛣️
前端·javascript