Skip to content

可写的计算属性

你需要创建一个可写的计算属性 :

vue
<script setup lang="ts">
import { ref, computed } from "vue";

const count = ref(1);
const plusOne = computed(() => count.value + 1);

/**
 * 确保 `plusOne` 可以被写入。
 * 最终我们得到的结果应该是 `plusOne` 等于 3 和 `count` 等于 2。
 */

plusOne.value++;
</script>

<template>
  <div>
    <p>{{ count }}</p>
    <p>{{ plusOne }}</p>
  </div>
</template>

解答

vue
// 你的答案
<script setup>
import { ref, computed } from "vue";

// 创建一个响应式变量 count,初始值为 1
const count = ref(1);

// 创建一个计算属性 plusOne,返回 count 的值加 1
const plusOne = computed({
  // get 方法返回 count 的值加 1
  get: () => {
    return count.value + 1;
  },
  // set 方法将 count 的值加 1
  set: () => {
    count.value++;
  },
});

// 确保 plusOne 可以被写入。
// 最终我们得到的结果应该是 plusOne 等于 3 和 count 等于 2。
plusOne.value++;
</script>

<template>
  <div>
    <p>plusOne: {{ plusOne }}</p>
    <p>count: {{ count }}</p>
  </div>
</template>