欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据

Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据

2024/10/24 20:14:52 来源:https://blog.csdn.net/gixome/article/details/139563372  浏览:    关键词:Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据

Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据

Vue3【十四】watchEffect自动监视多个数据实现,不用明确指出监视哪个数据
进入立即执行一次,并监视数据变化

案例截图

WatchEffact自动监视数据

目录结构

在这里插入图片描述

代码

Person.vue

<template><div class="person"><h1>WatchEfact自动监视多个数据</h1><h2>需求:转速大于2000时候换挡位,不能超过D6挡位</h2><h2>转速:{{ car.speed }}</h2><h2>挡位:{{ car.level }}</h2><button @click="changeSpeed">加油门</button><button @click="changeLevel">加挡位</button></div>
</template><script lang="ts" setup>
import { ref, reactive, watch, watchEffect } from 'vue';
let levels = ['P', 'R', 'N', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6']
let level = ref(0)
let car = reactive({speed: 0,level: 'P'
})
function changeSpeed() {car.speed += 300
}
function changeLevel() {car.level = levels[level.value += 1]
}// 监视 watchEffect自动监视多个数据实现,不用明确指出监视哪个数据
watchEffect(() => {if (car.speed > 2000) {if (car.level === 'D6') {alert('不能超过D6挡位')} else {car.level = levels[level.value += 1]}car.speed = 1000}// 挡位最高D6挡位 if (level.value >= 9) {alert('不能超过D6挡位')}})
</script><style scoped>
.person {background-color: #ff9e4f;box-shadow: 0 0 10px;border-radius: 30px;padding: 30px;
}button {margin: 0 10px;padding: 0 5px;box-shadow: 0 0 5px;;
}
</style>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com