1. 项目开发准备

  1. 描述项目
  2. 技术选型
  3. api 接口(4部分:3请求{url,请求方式,请求参数格式}, 1响应数据格式)/ 接口文档/ 测试接口

2. 启动项目开发

  1. 使用react脚手架创建项目
  2. 开发环境运行:  npm start
  3. 生产环境打包运行: npm run build     serve build

3. git管理项目

  1. 创建远程仓库
  2. 创建本地仓库
    1. 配置 .gitignore
    2.   git init
    3.   git add .
    4.  git commit -m "init"
  3. 将本地仓库推送到远程仓库
    1.   git remote add origin url
    2.   git push origin master
  4. 在本地创建dev分支,并推送到远程
    1.   gitcheckout -b dev
    2.   git push origin dev
  5. 如果本地有修改
    1.   git add.
    2.   git commit -m "xxx"
    3.   git push origin dev
  6. 新的同时:克隆仓库
    1.   git clone url
    2.   git checkout -b dev origin/dev
    3.   git pull origin dev
  7. 如果远程修改
    1.   git pull origin dev

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的静态组件

  1. 自定义了一部分样式布局
  2. 使用antd的组件实现登陆表单界面
    1.   Form / Form.Item
    2.   Input
    3.   Icon
    4.   Button

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. 高阶函数和高阶组件  

  1. 高阶函数
    1).一类特别的函数
      a).接受函数类型的参数
      b).函数返回值是函数
    2).常见
      a).定时器:setTimeout()/setInterval()
      b).Promise:Promise(()=>{}) then(value=>{},reason=>{})
      c).数组遍历相关的方法: forEach()/ filter()/ map()/ find()/ findindex()
      d).fn.bind() 本身是个函数,bind方法返回一个新的函数方法
      e).Form.create()() create函数能够包装组件,生成另外一个组件的新功能函数
      f).getFieldDecorator()()
    3).高阶函数更加动态,更加具有扩展性
  2. 高阶组件
    1).本质就是一个函数
    2).接收一个组件(被包装组件),返回一个新的组件(包装组件),包装组件会向被包装组件传入特定属性
    3).作用:扩展组件的功能
  3. 高阶组件也是高阶函数:接受一个组件函数,返回一个新的组件函数

  

react后台项目开发(一)的更多相关文章

  1. Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  2. 【共享单车】—— React后台管理系统开发手记:项目工程化开发

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  3. 【共享单车】—— React后台管理系统开发手记:主页面架构设计

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  4. react实战项目开发(2) react几个重要概念以及JSX语法

    前言 前面我们已经学习了利用官方脚手架搭建一套可以应用在生产环境下的React开发环境.那么今天这篇文章主要先了解几个react重要的概念,以及讲解本文的重要知识JSX语法 React重要概念 [思想 ...

  5. 【共享单车】—— React后台管理系统开发手记:AntD Form基础组件

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  6. 【共享单车】—— React后台管理系统开发手记:Router 4.0路由实战演练

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  7. react实战项目开发(1) 搭建react开发环境初始化项目(Create-react-app)

    前言 Create React App npm install -g create-react-app create-react-app my-app cd my-app npm start 执行命令 ...

  8. 【共享单车】—— React后台管理系统开发手记:Redux集成开发

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  9. 【共享单车】—— React后台管理系统开发手记:权限设置和菜单调整(未完)

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

随机推荐

  1. 简单了解一下K8S,并搭建自己的集群

    距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来.这篇博客的本意是带大家从零开始搭建K8S集群的.但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗 ...

  2. Newman

    目录 简介 安装 使用 简介 Newman是为postman而生,专门用来运行postman编写好的脚本 使用Newman,你可以很方便的用命令行来执行postman collections Newm ...

  3. xshell6和xftp6运行提示缺少mfc110u.dll文件的解决办法

    xshell6和xftp6运行提示缺少mfc110u.dll文件的解决办法 下载地址 http://www.microsoft.com/zh-CN/download/details.aspx?id=3 ...

  4. 如何使用Jmeter进行压力测试

    Jmeter做压力测试的操作:Jmeter不仅可以做接口测试,还可以做压力测试,下面介绍介绍如何jmeter进行简单地压力测试.具体步骤如下: 第一步:添加请求,这里不介绍具体步骤,详见(https: ...

  5. NodeJS4-3静态资源服务器实战_优化成近似同步写法

    实例3 上面有点回调,优化成近似同步的写法 route.js const fs =require('fs') const promisify = require('util').promisify; ...

  6. NodeJS3-1基础API----Path(路径)

    path 和路径有关的操作 Path(路径)  path 模块提供用于处理文件路径和目录路径的实用工具. 它可以使用以下方式访问 const path = require('path');  1. p ...

  7. Spring Cloud Config入门(本地配置)

    spring cloud config 简介 Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持.使用Config Server,您可以在所有环境中管理应用程序的外 ...

  8. python多线程编程-queue模块和生产者-消费者问题

    摘录python核心编程 本例中演示生产者-消费者模型:商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中.生产商品中的时间是不确定的,同样消费者消费商品的时间也是不确定的. 使用queue ...

  9. java对象的实例化过程

    简单类对象的实例化过程 1.在方法区加载类: 2.在栈内存申请空间,声明变量P: 3.在堆内存中开辟空间,分配对象地址: 4.在对象空间中,对对象的属性进行默认初始化,类成员变量显示初始化: 5.构造 ...

  10. JQuery 基本使用、操作样式、简单动画

    JQ与JS JQ是JS写的插件库,就是一个JS文件 凡是用JQ能实现的,JS都能实现,JS能实现的,JQ不一定能实现 引入 BootCDN:https://www.bootcdn.cn/jquery/ ...