12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <template>
- <h2>shallowReactive 与 shallowRef</h2>
- <h3>m1: {{ m1 }}</h3>
- <h3>m2: {{ m2 }}</h3>
- <h3>m3: {{ m3 }}</h3>
- <h3>m4: {{ m4 }}</h3>
- <hr>
- <button @click="update">更新数据</button>
- </template>
- <script lang="ts">
- import { defineComponent, reactive, shallowReactive,ref, shallowRef } from "vue";
- export default defineComponent({
- setup() {
- //深度劫持(深监视) ------深度响应式
- const m1 = reactive({
- name: 'xiaoming',
- firend: {
- name: 'xiaohong'
- }
- })
- //浅度响应式 只处理了对象内最外层的属性响应式
- const m2 = shallowReactive({
- name: 'xiaoming',
- firend: {
- name: 'xiaohong'
- }
- })
- //深度
- const m3 = ref({
- name: 'xiaoming',
- firend: {
- name: 'xiaohong'
- }
- })
- //shallowRef处理了value的响应式 不进行对象的reative处理
- const m4 = shallowRef({
- name: 'xiaoming',
- firend: {
- name: 'xiaohong'
- }
- })
- const update = ()=>{
- //更改m1的数据---reactive
- // m1.name += '='
- // m1.firend.name += '!'
- //更改m2的数据---shallowReactive
- // m2.name += '='
- // m2.firend.name += '!'
- //更改m3的数据---ref
- // m3.value.name += '='
- // m3.value.firend.name += '!'
- //更改m4的数据---shallowRef
- // m4.value.name += '='
- console.log(m3,m4)
- }
- return {
- m1,
- m2,
- m3,
- m4,
- update
- };
- },
- });
- </script>
- <style scoped>
- </style>
|