Skip to content

ref 创建对象类型的响应式数据

ref接收的数据可以是基本类型数据对象类型数据

注意

ref接收的是对象类型数据, 内部其实也是调用了reactive函数

语法

  • 代码示例
vue
<template>
  <div class="person">
    <h2>汽车信息: 一台{{ car.brand }}汽车, 价值{{ car.price }}万</h2>
    <h2>游戏列表: </h2>
    <ul>
      <li v-for="g in games" :key="g.id">{{ g.name }}</li>
    </ul>
    <h2>测试: {{obj.a.b.c.d}}</h2>
    <button @click="changeCarPrice">修改汽车价格</button>
    <button @click="changeFirstGame">修改第一游戏</button>
    <button @click="changeTest">修改测试</button>
  </div>
</template>

<script lang="ts" setup name="Person">
import { ref } from 'vue'

// 数据
let car = ref({ brand: '奔驰', price: 100 })
let games = ref([
  { id: 'ahsgdyfa01', name: '英雄联盟' },
  { id: 'ahsgdyfa02', name: '王者荣耀' },
  { id: 'ahsgdyfa03', name: '原神' }
])
let obj = ref({
  a:{
    b:{
      c:{
        d:666
      }
    }
  }
})

console.log(car)

// 方法
function changeCarPrice() {
  car.value.price += 10
}
function changeFirstGame() {
  games.value[0].name = '流星蝴蝶剑'
}
function changeTest() {
  obj.value.a.b.c.d = 999
}
</script>