常见前端面试题05

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反向代理

3.组件中通信

在这里插入图片描述

posted @ 2020-10-11 20:32  jacksonni  阅读(134)  评论(0编辑  收藏  举报