vue学习----computed vs. methods

1.对比

作用语法缓存是否可以以修改
computed计算属性封装一段对于数据的处理,求得一个结果作为属性,直接使用,{{计算属性名}}计算属性会对计算出来的结果缓存,再次使用直接读缓存,依赖项变了,会自动重新计算->再次缓存(性能高)通常只能读取访问,不能修改。如果非要修改,可以在set中修改
methods方法给实例提供一个方法,调用以处理业务逻辑作为方法,需要调用,{{方法名()}}无缓存

2.watch侦听器

作用:监视数据变化,执行一些业务逻辑或异步操作。

语法:简单类型数据,直接监视

应用场景:输入内容,实时翻译

data:{
    words:'', //普通类型
    obj:{
        words:''
    }  //复杂类型
},
watch:{
    //该方法会在数据变化时调用执行
    words(newValue,oldValue){
        console.log('变化了',newValue)
    }

    'obj.words'(newValue,oldValue){
        console.log('变化了',newValue)
    }
}

侦听器完整写法

需求:输入内容,修改语言时,都要实时翻译

data:{
    words:'', //普通类型
    obj:{
        words:'',
        lang:''
    }  //复杂类型
},
watch:{
    //完整写法
    obj:{
        deep:true, //深度监听,可以同时监听words、lang的变化,可以对对象里面所有属性进行监听
        immediate:true, //立即执行。不仅仅是在页面修改时执行,一进页面就执行handler一次
        handler(newValue){
            //每次都清除定时器
           clearTimeout(this.timer)
            //0.3秒后发一次请求
           this.timer = setTimeout(async()=>{
                   const res = await axios({
                        url:'',
                        params: newValue
            })
            this.result=res.data.data
            },300)
        }
    }
}

3.如何实现防抖

'obj.words'(newValue){
    //每次都清除定时器
   clearTimeout(this.timer)
    //0.3秒后发一次请求
   this.timer = setTimeout(async()=>{
        const res = await axios({
            url:'',
            params:{
                words: newValue
            }
        })
        this.result=res.data.data
    },300)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值