1. readonly
readonly: 让一个响应式数据变为只读的(深只读)修改不会生效。
此时所有的属性都是不能修改的。
<template><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><h2>性别:{{sex}}</h2><h2>薪资:{{job.salery}}</h2><hr><button @click="name += '@'">修改姓名</button><button @click="age ++">修改年龄</button><button @click="job.salery ++">修改薪资</button><h2>当前的值:{{sum}}</h2><button @click="sum++">点我+1</button></template><script>import { reactive, toRefs, readonly } from 'vue'export default {setup() {let person = reactive({name:'IRIC',age:12,sex:'女',job:{salery:20},address:''})person = readonly(person)return { ...toRefs(person) }},}</script>
2. shallowReadonly
- shallowReadonly:让一个响应式数据变为只读的(浅只读)。
- 应用场景: 不希望数据被修改时。
- 下面的例子只有薪资是可以修改的。
```javascript
姓名:{{name}}
年龄:{{age}}
性别:{{sex}}
薪资:{{job.salery}}
当前的值:{{sum}}
```
