123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <template>
- <h2>ref 和 reactive的细节问题</h2>
- <h3>m1: {{ m1 }}</h3>
- <h3>m2: {{ m2 }}</h3>
- <h3>m3: {{ m3 }}</h3>
- <button @click="update">更新</button>
- </template>
- <script lang="ts">
- import { defineComponent,ref,reactive } from 'vue'
- export default defineComponent({
- //ref用于处理基本数据类型 reactive 用来处理对象
- //如果用ref 对象/数组 内部会自动将对象 数组 转化为reactive代理的对象
- //ref的数据操作: 在ts中要.value,在模板中不需要
- //ref: 内部 通过给value属性添加getter/setter来实现对数据的劫持
- //reactive: 通过proxy来实现对于对象内部所有数据的劫持,并且通过reflect操作对象内部数据
- setup () {
- const m1 = ref('abc')
- const m2 = reactive({
- name: 'xiaoming',
- friend: {
- name: 'xiaohong'
- }
- })
- const m3 = ref({
- name: 'xiaolan',
- friend: {
- name: 'xiaobai'
- }
- })
- const update= ()=>{
- m1.value += '!'
- m2.friend.name +='='
- m3.value.friend.name += '!'
- }
- return {
- m1,
- m2,
- m3,
- update
- }
- }
- })
- </script>
- <style scoped>
- </style>
|