代理
1.实现接口代理本质上是 http-proxy-middleware
webpack-dev-server—> http-proxy-middleware
具有特定工程的程序(工具包–代码)
2.运行在哪?
前台应用端
只能在开发时使用
3.作用
解决开发时的Ajax请求跨域问题
a.监视并拦截请求
b.转发请求
4.配置代理
告诉代理一些信息:转发的目标地址
async / await 理解与使用
1.理解
简化promise对象的使用:不在使用then()来指定回调函数
能同步编码方式实现异步流程
2.使用
哪里使用await?再返回promise对象表达式左侧,左侧得到的不再是promise,而promise的异步成功的值。
哪里使用async? await所在最近函数定义的左侧
高阶组件和高阶函数的关系
- 高阶函数
是 接收的参数是函数或者返回值是函数
有 数组遍历的相关方法、定时器、Promise、高阶组件、fn.bind(obj)()
作用 实现一个更加强大、动态的功能 - 高阶组件
是 一个函数
函数接收一个组件,返回一个新的组件
Form.create()返回的就是一个高阶组件 - 高阶组件和高阶函数的关系
高阶组件是特殊的高阶函数
接收一个组件函数,返回的是一个新的组件函数
分页技术实现
- 前台分页
请求获取数据:一次获取所有数据,翻页时不需要再发请求
请求接口:
不需要指定请求参数:页码和每页的属性;
相应数据:所有数据的数组 - 后台分页
请求获取数据:每次只获取当前页的数据,翻页时要发请求
请求接口:
需求指定请求参数:页码和每页的数量
响应数据:当前页数据的数组+总记录数 - 如何原则? 基本根据数据
受控组件与非受控组件
无论是受控组件与非受控组件都描述的是有表单项的组件。
受控组件:在输入过程中,实时收集的。
非受控组件:点击提交按钮去收集。
小知识点:
//将JSON转为对象的操作
JSON.parse('json字符串' || '{}')
// 路由跳转的方式:
1.this.props.history.replace('/login') //事件回调函数中进行路由跳转,比如点击登录按钮时。
2.<Redirect to='/login'> //自动跳转到指定路由路径,在render里面
3.fn.call(obj,2,3) //调用fn函数,并且将函数的this变为obj