爱本泡沫多脆弱

文章 评论 浏览 28

爱本泡沫多脆弱 2022-05-04 13:55:46

react 是委托到 document 上, 然后自己生成了合成事件, 冒泡到 document 的时候进入合成事件, 然后他通过 getParent() 获取该事件源的所有合成事件, 触发完毕之后继续冒泡
vue 是怎么做的我就不清楚了, 但是尤大应该会意识到合成事件带来的好处, 跨端跨浏览器

每个dom都有的事件都代理到document上,但是一些特殊的比如focus这种必须放在input这些dom上。

https://juejin.im/post/5d0af976e51d454fbf540a0f

第 94 题:vue 在 v-for 时给每项元素绑定事件需要用事件代理吗?为什么?

爱本泡沫多脆弱 2022-05-03 06:22:15

把 ES6 代码转成 ES5 代码的实现思路可以分成三步:

  • 打开冰箱
  • 把大象装进去
  • 关上冰箱

喔,不对,原谅我开了个玩笑,嗯,有点冷……

回到正题上来,说到 ES6 代码转成 ES5 代码,我们肯定会想到 Babel。所以,我们可以参考 Babel 的实现方式。

那么 Babel 是如何把 ES6 转成 ES5 呢,其大致分为三步:

  • 将代码字符串解析成抽象语法树,即所谓的 AST
  • 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码
  • 根据处理后的 AST 再生成代码字符串

基于此,其实我们自己就可以实现一个简单的“编译器”,用于把 ES6 代码转成 ES5。

比如,可以使用 @babel/parserparse 方法,将代码字符串解析成 AST;使用 @babel/coretransformFromAstSync 方法,对 AST 进行处理,将其转成 ES5 并生成相应的代码字符串;过程中,可能还需要使用 @babel/traverse 来获取依赖文件等。对此感兴趣的可以看看这个

如果有误,希望可以帮忙指出来,多谢。

第 66 题:ES6 代码转成 ES5 代码的实现思路是什么?

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文