vue3 readonly和shallowReadonly函数
vue3
中提供了只读相关的函数:readonly
、shallowReadonly
和isReadonly
三者用途和区别显而易见:
readonly
:用于创建一个只读数据,并且是深度只读或者叫递归只读
shallowReadonly
:也是用于创建一个只读数据,但是这个只读只是第一层只读,非深度只读
isReadonly
:判断一个数据是不是只读数据
我们知道const定义的变量也是不能改的,那readonly和const有什么区别?
- const是赋值保护,使用const定义的变量,该变量不能重新赋值。但如果const赋值的是对象,那么对象里面的东西是可以改的。原因是const定义的变量不能改说的是,对象对应的那个地址不能改变
- 而readonly是属性保护,不能给属性重新赋值