2016 - 2024

感恩一路有你

vuejs字符数组怎么删除指定元素 vue为什么要用set改变数据?

浏览量:3670 时间:2023-06-24 10:00:11 作者:采采

vue为什么要用set改变数据?

只不过vue2中,它是劫持数组原型上的方法,并对原型上的方法然后再,它这个可以检测检测到数组的pop,push,shift,unshift,splice,等方法,不过没法检测到这些数据的变化,一是数组长度的变化,比如:那样的话5就没法被怎么检测到,二是数组索引值直接修改内容的或

前端编译器babel的缓存机制是怎么做的?

a这样也没法被检查到,因此可以使用set方法可以可以修改肯定不能被变动的数据。

前端编译器babel的缓存机制是怎么做的?

babel简介babel是一个js的编译器,我们只是平常在用的react、vue等框架全是按照它才能编译器成浏览器也可以不能执行的代码,个人感觉它是前端这座大厦最最底层另外是最最核心的部分。如果没有它,前端绝对会退回到刀耕火种时代。

既然如此是编译器,所以才它肯定会操作很多的文件,在babel/core中,它加载起码的是它的配置包括babelrc、pkgjson、插件、预设等文件,因为对操作文件的结果做缓存必不可少!

babel的缓存机制假设不成立我们现在处理的是一个文件在js中做缓存容器正确的所谓那就是对象和数组,babel区分的是es6提供给的map,反正是一个对象,只是它的key比较好随便地(不不单字符串)。

那样最好,现在呢既然有了缓存容器(map),那么sign是什么呢?用于标记一个文件,就像这个可以选择类型用文件的路径和文件名文件内容的md5值,babel带的是前者。

一次性处理文件的过程这个可以定义一个handle方法,文件路径是handle的一个参数,偶尔会单单一个文件路径并肯定不能满足的条件业务逻辑,是需要传来其他的参数,所以handles具备第二个参数。

在这里,babel对第二个参数做了一层标准封装,把它先做成了一个有状态管理能力的对象CacheConfigurator,因此handle的第二个参数那就是这个对象。

handle处理后是会能得到对某个文件本次的处理结果value,现在就把value卡内map中吗?excuse,并不是!

CacheConfigurator是另一个占据状态管理能力的对象,在handle处理的过程中是可以对它并且状态如何修改的。在换取value的值后,还不需要去鉴别CacheConfigurator的状态。

CacheConfigurator有三种状态:

红色字体的valid是校验函数never,不需缓存

forever,要缓存只不过下次再处理这个文件时跳校验部分再回value

valid,下次再处理这个文件时不需要走校验逻辑valid

这样这个校验逻辑是怎末传入的呢?

是的,是handle在一次性处理CacheConfigurator时传入的。

当改天再去一次性处理这个文件时,变会除外走缓存的逻辑,只能校验才会真接赶往value!

整体思路就是这样,大拿们的想法那就的很神妙的,这个思路在其他业务中都是这个可以参考的!

就是喜欢我的回答就参与我吧,有问题可以发表评论,我们一起学习,共同成长!

文件 babel 编译器 方法 CacheConfigurator

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。