Vue.js script setup 响应式详解:ref, computed, watch
169 浏览量
更新于2024-08-03
收藏 9KB MD 举报
"Vue3中的<script setup>响应式:核心特性"
在Vue3中,`<script setup>`是一种组合式API的语法糖,它简化了组件的定义方式,同时提供了更直接的响应式处理机制。本资源主要介绍了在`<script setup>`中使用的几个核心响应式特性,包括`ref()`、`computed()`、`reactive()`、`readonly()`以及不同类型的`watch`方法。
1. `ref()`: `ref`对象用于创建一个响应式的引用。它接受一个初始值(可以是基本类型或复杂类型),返回一个具有`.value`属性的对象。`.value`属性的修改会触发视图更新。例如:
```ts
import { ref } from "vue";
const count = ref<number>(0);
count.value++;
```
这里,`count`的值可以通过`.value`获取和修改,且变化会被追踪。
2. `computed()`: `computed`用于创建计算属性,这些属性依赖于其他响应式数据并自动更新。分为只读和可读可写两种:
- 只读计算属性接收一个getter函数,返回一个只读的响应式ref对象。
```ts
const count1 = ref<number>(1);
const plusOne = computed(() => count1.value + 1);
console.log(plusOne.value); // 2
plusOne.value++; // 报错,只读属性不能修改
```
- 可读可写计算属性则接受一个带有`get`和`set`方法的对象,返回一个可写的ref对象。
3. `reactive()`: 用于将普通对象转换为响应式对象,整个对象及其嵌套属性都是响应式的。适用于复杂数据结构的响应式需求。
4. `readonly()`: 创建一个只读的响应式版本的给定对象。修改只读对象的属性不会触发视图更新。
5. `watch()`、`watchEffect()`、`watchPostEffect()`和`watchSyncEffect()`: 这些是Vue3中观察和监听数据变化的方法:
- `watch`用于监听单个或多个响应式源,当源发生变化时,执行回调函数。
- `watchEffect`会在初始渲染及任何依赖变更时运行副作用,依赖追踪是自动的。
- `watchPostEffect`与`watchEffect`相似,但它的副作用会在所有同步副作用之后运行。
- `watchSyncEffect`类似`watchEffect`,但其副作用在当前运行的微任务队列中同步执行。
了解并熟练使用这些响应式特性,可以帮助开发者更高效地编写Vue3组件,实现数据和视图间的双向绑定,从而构建出更动态、响应更快的应用。在`<script setup>`语法下,这些特性的使用更加简洁,使得代码更加易读和维护。
2020-11-30 上传
2022-09-14 上传
2021-02-14 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
田七三两
- 粉丝: 4
- 资源: 11