Loading

07侦听器watch使用

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport"
 6           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>07侦听器watch使用</title>
 9     <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.40/vue.global.prod.js"></script>
10 </head>
11 <body>
12 
13 <div id = "app">
14     <!--计算属性-->
15     <button @click="desc()">减少</button>{{num}}<button @click="add()">增加</button>
16     <!--侦听器-->
17     <div style="background-color: red;color: white" v-if="error">提示: {{error}}</div>
18 </div>
19 <script>
20     let app = Vue.createApp({
21         data() {
22             return {
23                 num: 1,
24                 error: '',
25             };
26         },
27         // 侦听器用来检测一个数据的改变并做相应的业务操作
28         watch: {
29             // 侦听num响应式数据
30             num(newValue,oldValue){
31                 console.log(newValue,oldValue);
32                 this.error = newValue === 0 ? '不能小于0' : newValue === 10 ? '不能超过10' : ''
33             },
34         },
35         methods:{
36             add(){
37                 // this表示当前的组件(当前是根组件,即下面的vm)
38                 if (this.num < 10) this.num++;
39             },
40             desc() {
41                 if (this.num > 0) this.num--;
42             },
43         },
44     });
45 
46     let vm = app.mount('#app');
47 </script>
48 </body>
49 </html>

 

posted @ 2022-10-15 14:41  云起时。  阅读(36)  评论(0编辑  收藏  举报