vue3 ref和reactive使用watch属性的方法和区别

简介: vue3 ref和reactive使用watch属性的方法和区别

在Vue 3中,您可以使用watch函数和watch选项来监视refreactive创建的响应式数据的变化。下面是它们的使用方法和区别:

使用方法:

使用refwatch
import { ref, watch } from 'vue';
const count = ref(0);
watch(count, (newVal, oldVal) => {
  console.log(`count 从 ${oldVal} 变为 ${newVal}`);
});
使用reactivewatch
import { reactive, watch } from 'vue';
const state = reactive({
  count: 0,
});
watch(
  () => state.count,
  (newVal, oldVal) => {
    console.log(`count 从 ${oldVal} 变为 ${newVal}`);
  }
);

区别:

  1. 对单个值的监视:
  • ref用于创建单个基本数据类型的响应式数据,可以直接通过watch来监视其变化。
  • reactive用于创建包含多个属性的响应式对象,需要通过() => state.count这样的方式来指定要监视的属性。
  1. 访问值的方式:
  • ref中,您需要使用.value来访问或修改其值。
  • reactive中,您可以直接访问和修改其属性。
  1. 适用场景:
  • ref适合用于创建单个基本数据类型的响应式数据,例如数字、字符串等。
  • reactive适合用于创建包含多个属性的响应式对象。

总之,无论是ref还是reactive创建的数据,都可以使用watch来监视其变化,并执行相应的操作。只是在使用方法和适用场景上有一些区别。

相关文章
|
2天前
|
JavaScript 定位技术 API
在 vue3 中使用高德地图
在 vue3 中使用高德地图
8 0
|
2天前
vue3 键盘事件 回车发送消息,ctrl+回车 内容换行
const textarea = textInput.value.textarea; //获取输入框元素
10 3
|
5天前
|
JavaScript 前端开发 CDN
vue3速览
vue3速览
18 0
|
5天前
|
设计模式 JavaScript 前端开发
Vue3报错Property “xxx“ was accessed during render but is not defined on instance
Vue3报错Property “xxx“ was accessed during render but is not defined on instance
|
JavaScript 前端开发 API
Vue3入门到精通--ref以及ref相关函数
Vue3入门到精通--ref以及ref相关函数
|
5天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
18 0
|
6天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
6天前
|
JavaScript 数据库
ant design vue日期组件怎么清空 取消默认当天日期
ant design vue日期组件怎么清空 取消默认当天日期
|
6天前
|
JavaScript C++
vue高亮显示组件--转载
vue高亮显示组件--转载
11 0
|
1天前
|
JavaScript Java 关系型数据库
基于SprinBoot+vue的租房管理系统2
基于SprinBoot+vue的租房管理系统2
8 0