首页 > 其他分享 >Vue3——watch监视

Vue3——watch监视

时间:2024-06-14 23:21:59浏览次数:13  
标签:Vue3 10px watch 参数 监视 ref newValue

watch监视的作用

watch: 监视数据的变化,与Vue2中的watch作用相同。
特点:Vue3中的watch只能监视以下四种数据:

  1. ref定义的数据
  2. reactive定义的数据
  3. 函数返回的一个值(getter函数)
  4. 一个包含上述情况的数组
    语法
           watch(参数1,参数2,参数3)
           参数1:被监视的数据
           参数2:监视的回调,有俩个参数,一个是newValue,一个是oldValue
           参数3:配置对象(deep(是否开启深度监视)、immediate(立即执行一次)等等....)

情况一

监视ref定义的基本类型数据:直接写数据名即可,监视的是其value的变化。

运行结果

代码

  <template>
    <div class="root">
      <h2>监视ref定义的基础数据类型</h2>
      <h3>n = {{ n }}</h3>
      <button @click="changeN">n加一</button>
    </div>
  </template>

<!--Vue 3 setup语法糖 -->
<script setup lang='ts' name="App">
import { ref, watch } from 'vue';

//ref定义的数据
let n = ref(10);

const changeN = () => {
  n.value += 1;

}
//监视 
/**
 * 语法结构:
 * watch(参数1,参数2,参数3)
 * 参数1:被监视的数据
 * 参数2:监视的回调,有俩个参数,一个是newValue,一个是oldValue
 * 参数3:配置对象(deep(是否开启深度监视)、immediate(立即执行一次)等等....)
 */
const stopWatch = watch(n, (newValue, oldValue) => {
  console.log("n发生了改变", newValue, oldValue);
  //做逻辑
  if (newValue > 20) {
    //停止监视
    stopWatch()
  }
})

</script>

<style scoped>
.root {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

.roles {
  background-color: rgb(211, 216, 218);
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

h2 {
  width: 1000px;
}

button {
  margin: 0 5px;
}

div {
  margin: 10px;
}
</style>

标签:Vue3,10px,watch,参数,监视,ref,newValue
From: https://www.cnblogs.com/me-me/p/18248798

相关文章

  • python watchdog检测到文件产生,动态创建进程,不指定进程数去处理,处理过程中需要写文件,
    如果希望在检测到文件时动态创建进程而不预先指定进程数,并确保写文件时不发生冲突,可以使用队列和锁的机制。以下是一个改进的方案:pythonfrommultiprocessingimportProcess,Queue,Lockfromwatchdog.observersimportObserverfromwatchdog.eventsimportFileSystemE......
  • vue3创建的项目:用户登录功能路由跳转后又跳回了登录页,并且路径多个get请求问题
    前提:我使用element-plus组件后,又在网上找的普通的form表单的样式,一通cv后。。。。代码如下:登录用户名------------------------->看这里我在el-form-item中用了input,原因是:我cv的代码他有原来的样式,很多,本来想懒得改,直接**把el-input改成input**了----------------......
  • 清新优雅&高颜值!一个基于Vue3实现的后台管理模板
    大家好,我是Java陈序员。今天,给大家介绍一个高颜值的开源后台管理模板,已经收获了8k+Star!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍SoybeanAdmin——一个清新优雅、高颜值且功能强大的后台管理模板。基于最新的......
  • Vue3——computed计算属性
    computed计算属性的作用computed作用:根据以有数据计算出新数据(和vue2的computed的作用一样)特点:只要值一改变,就重新计算,如果没变,则使用缓存中计算出来的值与函数作对比,在模板中多次使用,计算属性的只会执行一次,有缓存。而函数会执行多次,无缓存。俩种使用方式computed计......
  • 基于jeecgboot-vue3的Flowable流程-流程处理(一)
    因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。这部分修正一些流程处理中VForm3线上的一些bug问题1、初始化流程提交与现实的前端页面代码<!--初始化流程加载默认VForm3表单信息--><el-col:span="16":offset="4"v-if="formConfOpen">......
  • vue3实现在移动端时用卡片展示数据而在PC端时切换为表格展示数据
    1、根据屏幕宽度自动切换卡片和表格来展示数据2、PC端用pagination分页,移动端用v-infinite-scroll滚动分页3、准备封装成一个组件......<template><div><divv-if="isMobile"class="infinite-list"style="overflow:auto"v-infinite-scroll="loadMore&q......
  • 【操作简单】怎么监视员工电脑屏幕?5个可实现方法分享
    在现代企业管理中,监视员工电脑屏幕成为了一种常见的做法,它有助于确保员工的工作效率,防止数据泄露,以及维护企业的安全和秩序。但是,如何在保证操作简单的前提下实现这一目标呢?点击获取软件https://work.weixin.qq.com/ca/cawcde06a33907e60a下面,为您分享5个可实现的方法。方......
  • vue3 动态路由生成
    动态路由生成----vue3stores/index.jsimport{defineStore}from'pinia';exportconstuseRouteStore=defineStore('route',{state:()=>({dynamicRoutes:false})});router/index.jsimport{createRouter,createWebHistory}fr......
  • vite+vue3展示文件夹内的所有组件
    https://www.cnblogs.com/y-shmily/p/16546743.html 在组件目录下新建index.jsimport{markRaw}from"vue";constfilesNameList=[];constfiles=import.meta.glob("./*.vue");for(constkeyinfiles){constfileName=key.replace(/(\.......
  • 专用向量数据库:Watch your back!
    PostgreSQL生态再添利器:Timescale最新推出了两款创新的开源扩展——pgvectorscale和pgai,喊话专用向量数据库:Watchyourback!性能和成本效率创新高pgvectorscale扩展基于StreamingDiskANN索引和Timescale的统计二进制量化技术,在性能上取得了显著进步。基准测试显示,使用pgvecto......