react项目引入antd框架及遇到的一些坑
1,用create-react-app创建项目
create-react-app demo //demo为项目名称
2.在项目中安装antd
npm install -D antd
3.安装 babel-plugin-import
npm install babel-plugin-import --save
4.修改package.json文件,在根目录下
"babel": { "plugins": [ [ "import", { "librayName": "antd", "style": true } ] ] }
5.在 "src/App.js"文件下使用antd
这时候样式是乱的
需要在App.css(即使用antd的这个文件的css文件)中引入antd.css文件
@import '~antd/dist/antd.css';
这样就一切正常啦
react的antd框架搭建基本布局
1.创建项目文件夹
并安装react-typecript项目
命令如下
- mkdir react-antd
- cd react-antd
- yarn create @umijs/umi-app 如果创建失败可以用 cnpm create @umijs/umi-app 命令
- yarn 如果用cnpm安装 cnpm install
2.运行antd项目
命令 npm start
在浏览器输入 http://localhost:8000 显示如下,即安装成功
3.用vs code编辑器打开项目
初始化项目目录如下
4.编写基本布局
创建layouts目录,新建index.tsx和index.less文件,配置路由文件
- mkdir layouts
- cd layouts
- mkdir index.tsx
- mkdir index.less
项目/src/layouts/index.tsx代码段如下
import { Layout } from 'antd'; const { Header, Footer, Sider, Content } = Layout; export default function layout(props: any) { return ( <> <Layout> <Sider>Sider</Sider> <Layout> <Header>Header</Header> <Content>Content</Content> <Footer>Footer</Footer> </Layout> </Layout> </> ); }
项目/.umirc.ts代码段如下
import { defineConfig } from 'umi'; export default defineConfig({ nodeModulesTransform: { type: 'none', }, routes: [ { exact: false, path: '/', component: '@/layouts/index', routes: [ { exact: true, path: '/', component: '@/layouts/index', }, ], }, ], fastRefresh: {}, });
编写文件如上两图,浏览器显示效果如下
4.在项目/src目录里创建global.css全局css文件
将#root的高度改为100%,代码如下
#root { height: 100%; }
5.编写项目/src/layouts/index.tsx文件如下
import { Layout } from 'antd'; import './index.less' const { Header, Footer, Sider, Content } = Layout; export default function layout(props: any) { return ( <> <Layout className="layout-main"> <Sider>Sider</Sider> <Layout> <Header>Header</Header> <Content>Content</Content> <Footer>Footer</Footer> </Layout> </Layout> </> ); }
引入index.less文件,在最外层Layout组件添加类layout-main
index.less编写如下
.layout-main { height: 100%; }
查看浏览器显示如下,基本的后台布局完成
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好代码网。