React 网络请求
方法一
原生请求,react自带的fetch请求方式:
fetch(opt.url, {
method: opt.type,
body: data,
headers: {
'content-type': opt.contentType
}
}).then(res => {
res.json().then((data) => {
console.log(data)
})
}).catch(e => {
console.log(e)
});
方法二
ajax请求,react通过jquery的ajax方法进行请求网络
$.ajax({
type: opt.type,
url: opt.url,
data: data,
dataType: 'json',
contentType: opt.contentType,
cache: false,
success(data) {
console.log(data)
},
error(xhr, type) {
console.log(xhr)
}
});
ES6学习补充
let命令
用法类似于var,但是声明的变量,只能在其所在的代码块使用,类似于局部变量,举个栗子(比较适用于for循环,循环结束后下标销毁),不可以重复声明。
var命令
则类似于全局变量,在代码块可以任意去调用它。
const 命令
const 声明一个只读的常量。一旦声明,常量的值就不能改变。同时,使用const声明的变量必须赋值,不然会报错。const
实际上保证的,不是变量的值不改变,而是变量指向对象的内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值保存在变量指向的那个内存地址,因此等同于常量。
ES6声明变量的六种方法
ES5只有两种声明变量的方法:var
命令和function
命令。ES6除了添加let
const
import
class
对象的结构机制
对象的结构赋值的内部机制,先找到同名属性,在赋值给变量,真正被赋值的是后者,而不是前者。
c // 'a'
a //error:a is not defined
上述代码中,a只是匹配模式,找到对应的属性名,而c
才是真正被赋值的变量,而不是模式a
。
默认值
对象的解构 也可以设置默认值
var {x = 3 } = {};
x // 3
var{ x , y = 5 } = { x : 1 };
x //1
y //5
var {x : y = 3} ={};
y //3
var {x : y = 3 } = { x : 5 };
y //5
var {message : msg = 'xxx'} = {};
msg // xxx
// 默认值生效的条件是,对象的属性严格等于`underfined`
var { x = 3 } = {x : undefined };
x // 3 ;
var { x = 3 } = { x : null } ;
x //