Vue3中使用监听器的具体实践

 更新时间:2023年12月21日 09:55:45   作者:Python私教  
监听器是Vue3中非常好用的一个特性,用于监听某个响应式变量的变化,本文就来介绍一下Vue3中使用监听器的具体实践,具有一定的参考价值,感兴趣的可以了解一下

概述

监听器是Vue3中非常好用的一个特性,用于监听某个响应式变量的变化。

监听器支持在被监听的响应式变量发生改变的时候,获取修改之前的值和修改之后的值,并触发一个回调函数。

比如,我们拿熟悉的计数器案例来说,正常逻辑下计数器是不能够低于0的,那么我们监听到计数器小于0的时候,就弹出提示。

基本用法

我们创建src/components/Demo27.vue,代码如下:

<script setup>
import {computed, ref, watch} from "vue";

const count = ref(0)

// 监听器监听
watch(count, function (value, oldValue) {
  if (value < 0) {
    alert(`无法将count从${oldValue}改为${value},因为修改后count小于0了`)
  }
})
</script>
<template>
  <div>
    <h3>{{ count }}</h3>
    <div>
      <button @click="count+=10">增加</button>
      <button @click="count-=10">减少</button>
    </div>
  </div>
</template>

接着,我们修改src/App.vue:

<script setup>
import Demo from "./components/Demo27.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <Demo/>
</template>

然后,我们浏览器访问:http://localhost:5173/

在这里插入图片描述

完整代码

package.json

{
  "name": "hello",
  "private": true,
  "version": "0.1.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  },
  "dependencies": {
    "vue": "^3.3.8"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.0",
    "vite": "^5.0.0"
  }
}

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
})

index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" rel="external nofollow"  />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

src/main.js

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

src/App.vue

<script setup>
import Demo from "./components/Demo27.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <Demo/>
</template>

src/components/Demo27.vue

<script setup>
import {computed, ref, watch} from "vue";

const count = ref(0)

// 监听器监听
watch(count, function (value, oldValue) {
  if (value < 0) {
    alert(`无法将count从${oldValue}改为${value},因为修改后count小于0了`)
  }
})
</script>
<template>
  <div>
    <h3>{{ count }}</h3>
    <div>
      <button @click="count+=10">增加</button>
      <button @click="count-=10">减少</button>
    </div>
  </div>
</template>

启动方式

yarn
yarn dev

浏览器访问:http://localhost:5173/

到此这篇关于Vue3中使用监听器的具体实践的文章就介绍到这了,更多相关Vue3 监听器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue props使用typescript自定义类型的方法实例

    vue props使用typescript自定义类型的方法实例

    这篇文章主要给大家介绍了关于vue props使用typescript自定义类型的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01
  • ElementUI对table的指定列进行合算

    ElementUI对table的指定列进行合算

    本文主要介绍了ElementUI对table的指定列进行合算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • vue3实现一个滚动分页加载瀑布流列表过程

    vue3实现一个滚动分页加载瀑布流列表过程

    文章介绍了如何使用Vue3和JavaScript实现一个滚动分页加载的瀑布流列表项目框架,主要选择了vue-waterfall-next插件,并结合原生JavaScript实现了滚动加载功能,包括防抖处理以优化页面性能
    2026-02-02
  • 在vue中实现表单验证码与滑动验证功能的代码详解

    在vue中实现表单验证码与滑动验证功能的代码详解

    在Web应用程序中,表单验证码和滑动验证是常见的安全机制,用于防止恶意攻击和机器人攻击,本文将介绍如何使用Vue和vue-verify-code库来实现表单验证码和滑动验证功能,需要的朋友可以参考下
    2023-06-06
  • Vue3.x如何操作v-html指令中HTML的DOM和样式

    Vue3.x如何操作v-html指令中HTML的DOM和样式

    在 Vue3.x 中,v-html 指令用于将 HTML 字符串渲染为真实的 DOM 元素,下面我们来看看具体如何操作v-html指令中HTML的DOM和样式吧
    2025-04-04
  • Vue中对数组和对象进行遍历和修改方式

    Vue中对数组和对象进行遍历和修改方式

    这篇文章主要介绍了Vue中对数组和对象进行遍历和修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue中input被赋值后,无法再修改编辑的问题及解决

    Vue中input被赋值后,无法再修改编辑的问题及解决

    这篇文章主要介绍了Vue中input被赋值后,无法再修改编辑的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 优雅的处理vue项目异常实战记录

    优雅的处理vue项目异常实战记录

    这篇文章主要给大家介绍了关于如何优雅的处理vue项目异常的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 如何解决vue在ios微信

    如何解决vue在ios微信"复制链接"功能问题

    这篇文章主要介绍了如何解决vue在ios微信"复制链接"功能问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • vue 组件的封装之基于axios的ajax请求方法

    vue 组件的封装之基于axios的ajax请求方法

    今天小编就为大家分享一篇vue 组件的封装之基于axios的ajax请求方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论