Vue3中使用監(jiān)聽器的具體實(shí)踐
概述
監(jiān)聽器是Vue3中非常好用的一個特性,用于監(jiān)聽某個響應(yīng)式變量的變化。
監(jiān)聽器支持在被監(jiān)聽的響應(yīng)式變量發(fā)生改變的時候,獲取修改之前的值和修改之后的值,并觸發(fā)一個回調(diào)函數(shù)。
比如,我們拿熟悉的計數(shù)器案例來說,正常邏輯下計數(shù)器是不能夠低于0的,那么我們監(jiān)聽到計數(shù)器小于0的時候,就彈出提示。
基本用法
我們創(chuàng)建src/components/Demo27.vue,代碼如下:
<script setup>
import {computed, ref, watch} from "vue";
const count = ref(0)
// 監(jiān)聽器監(jiān)聽
watch(count, function (value, oldValue) {
if (value < 0) {
alert(`無法將count從${oldValue}改為${value},因?yàn)樾薷暮骳ount小于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私教一起學(xué)習(xí)Vue3入門課程</h1> <hr> <Demo/> </template>
然后,我們?yōu)g覽器訪問: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私教一起學(xué)習(xí)Vue3入門課程</h1> <hr> <Demo/> </template>
src/components/Demo27.vue
<script setup>
import {computed, ref, watch} from "vue";
const count = ref(0)
// 監(jiān)聽器監(jiān)聽
watch(count, function (value, oldValue) {
if (value < 0) {
alert(`無法將count從${oldValue}改為${value},因?yàn)樾薷暮骳ount小于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/
到此這篇關(guān)于Vue3中使用監(jiān)聽器的具體實(shí)踐的文章就介紹到這了,更多相關(guān)Vue3 監(jiān)聽器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue?props使用typescript自定義類型的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于vue?props使用typescript自定義類型的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-01-01
vue3實(shí)現(xiàn)一個滾動分頁加載瀑布流列表過程
文章介紹了如何使用Vue3和JavaScript實(shí)現(xiàn)一個滾動分頁加載的瀑布流列表項(xiàng)目框架,主要選擇了vue-waterfall-next插件,并結(jié)合原生JavaScript實(shí)現(xiàn)了滾動加載功能,包括防抖處理以優(yōu)化頁面性能2026-02-02
在vue中實(shí)現(xiàn)表單驗(yàn)證碼與滑動驗(yàn)證功能的代碼詳解
在Web應(yīng)用程序中,表單驗(yàn)證碼和滑動驗(yàn)證是常見的安全機(jī)制,用于防止惡意攻擊和機(jī)器人攻擊,本文將介紹如何使用Vue和vue-verify-code庫來實(shí)現(xiàn)表單驗(yàn)證碼和滑動驗(yàn)證功能,需要的朋友可以參考下2023-06-06
Vue3.x如何操作v-html指令中HTML的DOM和樣式
在 Vue3.x 中,v-html 指令用于將 HTML 字符串渲染為真實(shí)的 DOM 元素,下面我們來看看具體如何操作v-html指令中HTML的DOM和樣式吧2025-04-04
優(yōu)雅的處理vue項(xiàng)目異常實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的處理vue項(xiàng)目異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06

