这篇文章主要介绍“Vue中的侦听器watch怎么使用”,在日常操作中,相信很多人在Vue中的侦听器watch怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中的侦听器watch怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
侦听器watch
1.初识侦听器watch
watch:观看,监视
那么什么是侦听器watch
呢
开发中我们在data
返回的对象中定义了数据,这个数据通过插值语法等方式绑定到template
中;
当数据变化时,template
会自动进行更新来显示最新的数据;
但是在某些情况下,我们希望在代码逻辑中监听某个数据的变化,这个时候就需要用侦听器watch
来完成了;
2.Vue的data的watch
案例:
const app = Vue.createApp({
data() {
return {
message: "Hello Vue",
info: { name: "kk", age: 18 },
};
},
methods: {
changeMessage() {
this.message = "hello kk";
this.info = { name: "kk" };
},
},
watch: {
// 1.默认有两个参数,newValue/oldValue
message(newValue, oldVale) {
console.log("message数据发生了变化", newValue, oldValue);
},
info(newValue, oldValue) {
// 2.如果是对象类型,那么拿到的是代理对象
console.log("info数据发生了变化", newValue, oldValue);
console.log(newValue.name, oldValue.name);
// 3.获取原始对象
console.log({ ...newValue });
3.Vue的watch侦听选项
<div id="app">
<h3>{{info.name}}</h3>
<button @click="changeInfo">修改info</button>
</div>
const app = Vue.createApp({
data() {
return {
info: { name: "kk", age: 18 },
};
},
methods: {
changeInfo() {
// 创建一个对象,赋值给info
this.info = { name: "kk" };
// 直接修改对象里的一个属性
this.info.name = "kk";
},
},
watch: {
// 默认watch监听不会进行深度监听
info(newValue, oldValue) {
console.log("侦听到info改变", newValue, oldValue);
},
// 进行深度监听
info: {
handler(newValue, oldValue) {
console.log("侦听到info改变", newValue, oldValue);
console.log(newValue === oldValue);
},
// 监听器选项
// info进行深度监听
deep: true,
// 第一次渲染直接执行一次监听器
immediate: true,
},
},
"info.name": function (newValue, oldValue) {
console.log("name发生改变", newValue, oldValue);
},
});
app.mount("#app");
到此,关于“Vue中的侦听器watch怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!