es7----proxy

Proxy  对象用于定义基本操做的自定义行为(如属性查找,赋值,枚举,函数调用等),等同于在语言层面作出修改,因此属于一种“元编程”(meta programming),即对编程语言进行编程。vue

基本语法:new Proxy(obj, handler)编程

它的handler有13种操做:具体看 官方文档json

proxy是代理的意思,es7新增这个能够代理某个变量的“增删改查”,vue3 的核心原理就是这个~~编程语言

基本使用方法:ide

let json = {a: 123, c: 999}
let p = new Proxy(json, {
    get(target, name, proxy){
        return target[name]
    },
    set(targe, name, value, proxy) {
        targe[name] = value
    },
    deleteProperty(targe, name) {
        delete targe[name]
    },
    has(target, name) {
        console.log(target, name)
    }
})
//触发get
console.log(p.a)
//触发set
p.b = 456
console.log(json)
//触发deleteProperty
delete p.c
console.log(json)
//触发has
"b" in p

意思就是p代理了json对象的任何操做,就是说在对经过p对j'son进行“增删改查”的时候都是能够监听到的(分别触发get、set、deleteProperty、has方法),这个就是为何vue.data中某个数据被修改后,能够实时地监测到而且被从新渲染了函数

本站公众号
   欢迎关注本站公众号,获取更多信息