前端知识点

1、shallowRef: 浅层响应式对象

const count = shallowRef("hcj");  
count.value = "hcj2" //可触发

//如果 const count = shallowRef({name:hcj})
count.value.name = "hcj2"//不触发

2、watchEffect:立即执行一次,并且自动跟踪函数中依赖的响应式数据,依赖数据发生变化时就会触发函数执行

3、vue2使用defineproperty实现响应式,vue3使用proxy实现响应式

defineproperty:可以通过劫持getter方法来收集依赖,在触发setter方法时进行依赖更新

proxy:可以代理整个对象而不仅仅是已存在的属性,所以proxy可以监听属性的新增和删除。

4、typeof null 是object

5、promise.all 和 promise.race的作用

all:1.所有promise返回后将返回一个所有promise结果的数组 2、当其中一个被拒绝,将立刻返回,返回的将是这个被拒绝的结果

race: 竞争的胜出者的结果,不论是成功或者失败,仅返回第一给出反应的结果

6、call ,apply,bind

call和apply都是立即执行目标函数,重定向this,参数的输入形式分别是:函数参数式、数组形式

bind是重新生成一个重定向this的函数,参数形式同call

7、Map和weakMap

Map的key可以使用”原始类型”和“引用类型”,Map对key的引用是强引用,这意味着key即使没有其他引用也不会被回收

weakMap的key只能使用”引用类型”,而且key如果没有其他地方引用是随时可能被回收的

8、animation

animation一般配合@keyframe一起使用,它用于规定动画的“性质”,比如 “持续时间”、“速度曲线”、“开始延迟”、”播放次数”、“方向”、“开始和结束的状态”

9、定位动画和translate动画的区别

  • 1、translate是相对于原元素位置的坐标系 2、它是不脱离文档流的
  • 1、position方式是基于据对定位和相对定位、固定定位的坐标系,一般是相对于最近的祖先元素 2、绝对定位是脱离文档流的,会影响其他元素的布局

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部