posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1,methods
不存在缓存,执行一次运行一次,执行n次,运行n次。

2,computed
使用场景:当页面中有某些数据依赖其他数据进行变动的时候,可以使用计算属性。
计算属性 computed 是基于data中数据进行处理的,data数据变化,他也跟着变化。当data中数据没有发生改变时,我们调用computed中函数n次,只会进行缓存(执行一次),每个计算属性都包含两个set、get 属性

3,watch
使用场景:数据变化时执行异步或开销较大的操作,可以随时修改状态的变化。
watch:类似于监听机制+事件机制。在大部分情况下我们都会使用computed,但如果要在数据变化的同时进行异步操作或者是比较大的开销,那么watch为最佳选择。
watch为一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。

复制代码
// 这里直接用 v-model 来绑定,不需要添加 change 事件
<input type="text" v-model="nameValue" style="margin-top:15px" /> 
  data() {
    return {
      nameValue: "",
      tip: ""
    };
  },
  methods: {
    checkName(value) {
      var that = this;
      setTimeout(() => {
        if (value == "admin") {
          that.tip = "用户名已存在";
        } else {
          that.tip = "用户名可以使用";
        }
      }, 2000);
    }
  },
  watch: {// 数据变化时执行异步或开销较大的操作
    nameValue(value) {
      this.checkName(value);
      this.tip = "正在验证......";
    }
  }
复制代码

//当num的值发生变化时,就会调用num的方法,方法里面的形参对应的是num的新值和旧值
watch:{
num:function(val,oldval){
console.log(val,oldval);
}}

watch的高级用法
上面的watch方法是当改变值时候,才会触发监听事件,但是我们想刚进入页面时候,就触发监听事件,就要用handler()方法
handler():当页面刚进入时,自动绑定watch事件,不需要进行触发

watch: {// 页面加载时,就自动触发此事件
  nameValue:{
    handler(new){
       this.checkName(value);
       this.tip = "正在验证......";
    }
  }
}

immediate属性:布尔值
immediate:true:首次加载就监听数据变化
immediate:false:只有发生改变才监听

复制代码
watch: {// 页面加载时,就自动触发此事件
  nameValue:{
    handler(new){
       this.checkName(value);
       this.tip = "正在验证......";
    },
     immediate: true 
  }
}
复制代码

deep:true;是开启深层次的监听,即所有属性都加上监听器,如果其中一个发生改变了就执行handler函数。

复制代码
watch: {// 页面加载时,就自动触发此事件
  nameValue:{
    handler(new){
       this.checkName(value);
       this.tip = "正在验证......";
    },
     immediate: true,
     deep:true
  }
}
复制代码

来源:https://www.jianshu.com/p/a69a9bac9dc3
为了方便查,转过来了。

posted on   邢帅杰  阅读(146)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2016-12-23 C#中DateTime的各种操作 日期戳
2016-12-23 C# SHA1散列算法
点击右上角即可分享
微信分享提示