1. 项目开发准备
2. 启动项目开发
3. git管理项目
4. 创建项目的基本结构
api: ajax请求模块
components: 非路由组件
pages: 理由组件
app.js: 应用的根组件
index.js: 入口js
5. 引入antd
下载antd包 ( npm i antd -d )
按需打包:只打包import引入组件的js/css
下载工具包 ( npm i react-app-rewired customize-cra babel-plugin-import )
config-overrides.js
package.jason
自定义主题
下载工具包 ( npm i less less-loader -d )
config-overrides.js
使用antd的组件
根据antd的文档编写
6. 引入路由
下载: react-router-dom
拆分应用路由:
Login: 登陆
Admin: 后台管理界面
注册路由:
<BrowserRouter> //路由器
<Switch> //切换其中一个路由
<Route path=‘‘ component={ }/> //路由
7. Login的静态组件
8. 收集表单数据和表单的前台验证
1. form 对象
如何让包含<Form> 的组件得到form对象?
WrapLoginForm = Form.create()(LoginForm)
WrapLoginForm是LoginForm的父组件,它给LoginForm传入form属性,用到了高阶函数和高阶组件的技术
2. 操作表单数据
form.getFiledDecorator(‘标识名称‘, { initialValue:初始值,rules:[]})(<Input/>)包装表单项组件标签
form.getFieldsValue(); 得到包含所有输入数据的对象
form.getFieldValue(id); 根据标识得到对应字段输入的数据
3. 前台表单验证
1. 声明式实时表单验证
form.getFieldDecorator(‘标识名称‘,{rules:[{min:4,message:‘错误提示信息‘}]}) (<Input/>)
2.自定义表单验证
form.getFieldDecorator(‘标识名称‘,{rules:{validator:this.validatePwd}})(<Input/>) validatePwd = (rule,value,callback)=>{ if(问题) callback(‘错误提示‘) else callback() }
3.点击提示时统一验证
form.validateFields((error,values)=>{ if(!error){ 通过验证,发送ajax请求} })
9. 高阶函数和高阶组件
原文:https://www.cnblogs.com/tommymarc/p/12020143.html