react_app 项目开发 (6)_后台服务器端-node
后台服务器端
负责处理前台应用提交的请求,并向前台返回 json 数据
前台应用 负责
展现数据与用户交互
发 ajax 请求与后台应用交互
yarn add axios
/src/api/ajax.js
/*
自定义封装 axios ---- https://github.com/axios/axios
返回值: Promise 对象
*/
export default function ajax(url, data={}, method="GET"){
/**** 自定义封装 Promise 对象 ****/
return new Promise((resolve, reject)=>{
let promiseAxios;
if(method === "GET"){
promiseAxios = axios,get(url, {params: data});
}else if(method === "POST"){
promiseAxios = axios.post(url, data);
}else{
throw new Error("方法 method 错误");
}
promiseAxios.then(result=>{
resolve(result);
}).catch(error=>{
console.log(error);
message.error("请求出错了");
throw new Error("请求出错了");
});
});
} /****
async function login(){
const result= await ajax(
"/login",
{uName: 'Tom', uPWD: '112233'},
"POST"
);
if(result.statue === 0){...}else{...}
}
****/
/src/api/login.js
import requestLogin from "xxx"
...
this.props.form.validateFields(()=>{
if(error){ }else{
const result = await requestLogin(values);
}
})
... /**** 以上写法意味着 ajax 需要进一步封装 /src/api/index.js
import ajax from "./ajax"
// export function requestLogin(data){
// return ajax(“/login”, data, "POST");
// } export default const requsetAPI = {
login(data){
return ajax(“/login”, data, "POST");
},
addUser(data){
return ajax(“/manage/user/add”, data, "POST");
},
}
****/
保存 用户登录 状态
- 会话保存到内存 sessionStorage
- 永久保存到硬盘 localStorage
06_jsonp、cors、"proxy" 代理 解决跨域问题 ---- 只有 ajax 跨域才会有问题
proxy 有两个作用: 拦截到请求,然后转发到 另一个目标地址
中间件就是一个函数,进行处理后,控制继续还是不继续。
http-proxy-middleware 代理中间件 被前端广泛使用,而后台多用 nginx
配置 前端应用的 package.json ---- webpack-dev-server 提供的功能
07_登录检查用户状态 从内存读 会 从 localStorage 中读 的效率更高
减少从 localStorage 中读: 只是存入 localStorage
登录检查:
5
创建 src/config 文件夹 ---- 菜单配置 menuConfig.js
- reduce 的常用逻辑
- 在 LeftNav.jsx 中
利用递归,来
react_app 项目开发 (6)_后台服务器端-node的更多相关文章
- react_app 项目开发 (5)_前后端分离_后台管理系统_开始
项目描述 技术选型 react API 接口 接口文档,url,请求方式,参数类型, 根据文档描述的方法,进行 postman 测试,看是否能够得到理想的结果 collections - 创建文件取项 ...
- react_app 项目开发 (3)_单页面设计_react-router4
(web) 利用 react-router4 实现 单页面 开发 SPA 应用 ---- (Single Page Web Application) 整个应用只有 一个完整的页面 单击链接不会刷新页面 ...
- react_app 项目开发 (7)_难点集合
/src/App/Admin/Header 布局 import {Row, Col} from "antd" <div className="header_box& ...
- react_app 项目开发 (4)_ React UI 组件库 ant-design 的基本使用
最流行的开源 React UI 组件库 material-ui 国外流行(安卓手机的界面效果)文档 ant-design 国内流行 (蚂蚁金服 设计,一套 PC.一套移动端的____下拉菜单.分页.. ...
- react_app 项目开发 (8)_角色管理_用户管理----权限管理 ---- shouldComponentUpdate
角色管理 性能优化(前端面试) 需求:只要执行 setState(), 就会调用 render 重新渲染.由于有时调用了 setState,但是并没有发生状态的改变,以致于不必要的刷新 解决: 重写 ...
- react_app 项目开发 (9)_数据可视化 ECharts
数据可视化 ECharts yarn add echarts echarts-for-react
- react_app 项目开发
react_app 项目开发 npm install -g create-react-app npm root -g // 查看安装包位置 创建项目 create-react-app m ...
- react_app 项目开发_遇到的坑
1. favicon.ico <link rel="shortcut icon" type="image/x-icon" href="./fav ...
- com.panie 项目开发随笔_数据字典(2017.2.24)
(一) 做一个网站,第一步需要考虑的是从哪个地方开始下手.首先,每一个功能肯定有最基本的增删改查功能,而此功能一般都分为两个页面. 1) 列表显示页面.用列表来展示数据库中的数据,多用于分页显示.该页 ...
随机推荐
- 关于java集合的练习
关于java集合的练习 练习一:Collection集合练习 一.产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台. public cl ...
- PageRank算法--从原理到实现
本文将介绍PageRank算法的相关内容,具体如下: 1.算法来源 2.算法原理 3.算法证明 4.PR值计算方法 4.1 幂迭代法 4.2 特征值法 4.3 代数法 5.算法实现 5.1 基于迭代法 ...
- HTML(七)HTML 表单(form元素介绍,input元素的常用type类型,input元素的常用属性)
前言 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input> ...
- 《Java编程思想第四版完整中文高清版.pdf》-笔记
D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...
- Django过滤器
在项目目录下建立templatetags文件 夹 建立 my_filter.py文件 from django import template register = template.Library() ...
- [Kubernetes]编排其实很简单
什么是编排 Kubernetes中,我们总是在说一个概念:编排. 在[Kubernetes]谈谈Kubernetes的本质这篇文章中,关于"编排"的概念介绍了一下:过去很多集群管理 ...
- cefsharp解决闪烁
CefSharp禁用GPU的命令行参数 其中,Major和Minor分别指代系统的主版本(大版本).次版本(小版本)版本号.其中指定了Windows7系统会禁用 GPU.,突发奇想,是否windows ...
- 【原创】大叔问题定位分享(13)HBase Region频繁下线
问题现象:hive执行sql报错 select count(*) from test_hive_table; 报错 Error: java.io.IOException: org.apache.had ...
- 18 常用模块 random shutil shevle logging sys.stdin/out/err
random:随机数 (0, 1) 小数:random.random() ***[1, 10] 整数:random.randint(1, 10) *****[1, 10) 整数:random.rand ...
- Linux extmail的邮件服务器搭建
注:本文来源于<extmail搭建> 一.背景介绍 ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix.Amavisd-new.C ...