介绍
-
在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,给设计师和工程师带来很多困扰和重复建设,大大降低了产品的研发效率。我们(蚂蚁金服体验技术部)经过大量的项目实践和总结,沉淀出一个中台设计语言 Ant Design。旨在统一中台项目的前端 UI 设计,屏蔽不必要的设计差异和实现成本,解放设计和前端的研发资源。
-
Ant Design 是一个致力于提升『用户』和『设计者』使用体验的中台设计语言。它模糊了产品经理、交互设计师、视觉设计师、前端工程师、开发工程师等角色边界,将进行 UE 设计和 UI 设计人员统称为『设计者』,利用统一的规范进行设计赋能,全面提高中台产品体验和研发效率。
- 推荐网站: ant.design/docs/spec/i…
umi 介绍
- React 组件使用的是 JSX 语法和很多新的 ES6 语法,浏览器不支持。另外,不同的组件脚本必须打包在一起,浏览器才能加载。
- 因此,React 应用有一个构建过程,将源码编译为生产环境代码。这个步骤对于新手来说是比较麻烦的,因为有很多配置的细节,而且包括很多重复的环节,每个项目都必须做一次,也是很烦人的。
- 因此,我们开发了一个工具 umi,封装了编译步骤,包括了很多开发时的有用工具。只要你写好 React 代码,接下来 umi 就会把它处理为生产代码。
- umi 也是蚂蚁金服体验技术部推出的工具。在本次项目使用的技术也是采用 umi 和 Ant Design 配套使用。
基础要求
我觉得首先对于前端要有着一定的了解,后需要较为精通react等技术,这样在配合这教学视频就可以进行简单项目的开发
操作
- antd官网 ant.design/docs/react/…
- React中使用Antd 1)、安装antd
npm install antd --save / yarn add antd / cnpm install antd --save
2)在react项目的css文件中引入Antd的css
@import '~antd/dist/antd.css';
3)、如何使用一个Button:
a、在对应的组件中引入Antd
import { Button } from 'antd';
b、在html本分写
<Button type="primary">Primary</Button>
- react中使用Antd高级配置,按需引入css样式 现在组件已经成功运行起来了,但是在实际开发过程中还有很多问题,例如上面例子实际上市加载了全部的antd组件的样式(对前端性能是个隐患)。
1)、安装antd
npm install antd --save
2)、安装(react-app-rewired) 一个对 create-react-app 进行自定义配置的社区解决方案
yarn add react-app-rewired / cnpm install react-app-rewired --save
3)、修改package.jsonz中react-scripts 需改为react-app-rewired
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test --env=jsdom",
"eject": "react-app-rewired eject"
}
4)、在项目根目录创建一个 config-overrides.js 配置文件
const { injectBabelPlugin } = require('react-app-rewired');
module.exports = function override(config, env) {
config = injectBabelPlugin(
['import', { libraryName: 'antd', libraryDirectory: 'es', style: 'css' }],
config,
);
return config;
};
5)、安装babel-plugin-import babel-plugin-import是一个用于按需加载组件代码和样式的 babel 插件
yarn add babel-plugin-import / cnpm install babel-plugin-import --save
6)、然后移除前面在 src/App.css 里全量添加的
@import '~antd/dist/antd.css';
- 直接引入组件使用就会有对应的css:
import { Button } from 'antd';
<Button type="primary">Primary</Button>