reactive是用于复杂数据类型。
可以直接用引用进行赋值, 如果使用到了ref响应式就需要变量.value进行赋值。
torefs是因为把reactive的值转成ref型,如果不转就不能响应式。
<template> <!-- <img alt="Vue logo" src="./assets/logo.png"> --> <div> <h1>{{ name }}</h1> <h1>{{ age }}</h1> <button @click="sayName">按钮</button> </div> </template> <script lang="ts"> import { computed, reactive,toRefs } from "vue"; interface DataProps { name: string; now: number; birthYear: number; age: number; sayName: () => void; } export default { name: "App", setup() { const data: DataProps = reactive({ name: "zhangsan", birthYear: 2000, now: 2020, sayName: () => { console.log(1111); console.log(data.name); data.name = "I am " + data.name; console.log(data.name); }, age: computed(() => { return data.now - data.birthYear; }), }); const refData = toRefs(data) refData.age return { ...refData, }; }, }; </script> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
详情:https://blog.csdn.net/weixin_43342105/article/details/110233333