Skip to content

SoulHall/react-jsx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsx

jsx的本质其实是将HTML结构转化成对象

jsx不是js,单最后都要转化成js,这其中需要用到babel做转化

babel在经典写法里面是需要引入babel.js,如果是用模块化,webpack的babel-loader,它的两个功能是将jsx转成js es6+ 转成 es5,兼容更多浏览器

Proxy

Object.defineProperty不同,以前这个Object.defineProperty是有缺陷的,它不能劫持数组,需要遍历每个元素去劫持,Proxy是他的升级版

let proxyData = new Proxy({}, {
    set(target,props,value,old) {
        console.log(target,props,value,old)
        target[props] = value;
        return true;
    },
    get(target,props,old) {
        console.log(target,props,old)
        return target[props]
    }
});

需要new Proxy(),它接受两个参数(类型为对象),第一个参数为被劫持的对象,第二个参数为一个存放着set和get的对象,let proxyData = new Proxy(),而proxyData其实就是经过原对象被劫持后的对象,所以修改或者获取proxyData这个对象,就可以出发对应set和get

About

使用proxy实现简易版react

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published