zoukankan      html  css  js  c++  java
  • vue3中watch函数

    watch

    监听普通类型

     let count = ref(1);
     const changeCount = () => {
    	 count.value+=1
     };
    
    watch(count, (newValue, oldValue) => { //直接监听
    	console.log("count改变了");
    });
    

    监听响应式对象

     let book = reactive({
         name: "js编程",
         price: 50,
     });
     const changeBookName = () => {
     	book.name = "c#"; 
     };
     watch(()=>book.name,()=>{//通过一个函数返回要监听的属性
     	console.log('书名改变了')
     })
    

    监听多个参数执行不同的方法

    不过以上只是一些简单的例子,对于vue2中,watch可以监听多个源,并且执行不同的函数

    image-20210105112257382

    • 注:在群里请教别人时得知的方法,但是在官方文档中未找到,如有错误还望批评指正

    在vue3中同理也能实现相同的情景,通过多个watch来实现,但在vue2中,只能存在一个watch

    watch(count, () => {
    	console.log("count改变了");
    });
    watch(
        () => book.name,
        () => {
            console.log("书名改变了");
        }
    );
    

    监听多个参数执行相同的方法

    在vue2中可能存在需要执行同一事件的情况,解决方法通常是利用computed把他们存入一个对象中,监听这个对象的变化

    image-20210105114955921

    对于vue3,可以免去computed的操作

    watch([() => book.name, count], ([name, count], [preName, preCount]) => {
    	console.log("count或book.name改变了");
    });
    
  • 相关阅读:
    C# 9.0语法新特性【废弃,自用,无参考价值】
    0兆宽带年费过万,垄断坑企咋破
    筹划建立题目该如何作答?
    去重 sort -u
    大城市治理
    申论话题
    面试 思维
    成语
    人民日报怒批机关事业单位三大怪状
    留痕主义
  • 原文地址:https://www.cnblogs.com/genhao7/p/14234981.html
Copyright © 2011-2022 走看看