老师,侦听器这样写怎么不监听数据变化呢

老师,侦听器这样写怎么不监听数据变化呢

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>vue-compositionAPI-setup函数-watch</title>

</head>

<body>

<div id="root"></div>

<!-- 如果你想要在一个新项目里快速尝试 Vue 3: -->

<script src="https://unpkg.com/vue@next"></script>

<script>

//  Vue.createApp创建实例

const app = Vue.createApp({

template: `

         <div>

           <input v-model="name"/>

           <p>{{name}}</p>

         </div>

         <div>

           <input v-model="age"/>

           <p>{{age}}</p>

         </div>

       `,

setup(props, context) {

const { ref, reactive, toRefs, watch } = Vue;

let namObj = reactive({ name: "dell" });

let age = ref(0);

const { name } = toRefs(namObj);

//watch侦听器,数据发生变化时,执行里面的代码

//具有惰性,就是初始化的时候,里面代码是不执行的

//可以监听多个数据

// watch(name,(cureentValue, prevVlue) => {

//   console.log(cureentValue, prevVlue);

// });

watch(

() => name,

() => age,

([curVal1, curVal2], [preVal1, preVal2]) => {

console.log(curVal1, preVal1, curVal2, preVal2);

}

);


return { name, age };

},

});

const vm = app.mount("#root"); //mount方法,即在root元素节点使用vue实例

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-05-19 09:49:01

同学你好,因为不符合语法规范,所以无法监听。可以监听多个数据,一般都是使用多个watch,每个watch对应监听一个数据,示例:

https://img1.sycdn.imooc.com//climg/6285a1ef09354d8016540833.jpg

祝学习愉快~

  • 提问者 FalseMask #1

    单个写开是可以的,想同视频里面把数据写在一个watch,怎么写呢

    2022-05-19 12:39:42
  • 好帮手慕慕子 回复 提问者 FalseMask #2

    同学你好,可以使用数组以同时侦听多个数据,示例:

    https://img1.sycdn.imooc.com//climg/6285d34b09a27e0d11870648.jpg

    https://img1.sycdn.imooc.com//climg/6285d362098586a611470283.jpg

    祝学习愉快~

    2022-05-19 13:20:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师