object.definePropoty 与 proxy对比
object.definePropoty方式自己手动的来监听对象中的每一个属性,并且为了防止死循环,哦我们需要把目标对象进行深拷贝进而来操作这个对象,很麻烦,所以es6给咱们提供了一种数据proxy代理的方式。
let obj = {
value: '123'
}
let newObj = JSON.parse(JSON.stringify(obj))
Object.defineProperty(obj, 'value', {
set(val) {
if (val === newObj.value) return
newObj.value = val
observer()
},
get() {
return newObj.value
}
})
proxy实现的方式:,可以直接监听目标对象的整体,并且通过函数参数的形式进行对象数据的更新,并且获取需要需要更新的目标属性,实现方式如下:
let obj = {
value: '123'
}
obj = new Proxy(obj, {
get(target, prop) {
return target.prop
},
set(target, prop, value) {
target.prop = value
}
})
React常见
1.react双向绑定
2.跨域问题
因为同源策略,采用前后端分离
Jsonp
只能get,不安全、有缓存、大小限制
iframe
window.name
document.domin
location.hash
post message
CORS-服务端配置
http Proxy
webpack添加proxy
nginx反向代理
在build之后proxy不可以用,要服务器端nginx反向代理