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、绝对定位是脱离文档流的,会影响其他元素的布局