为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第11天 vue基础入门

标签:
Vue.js
模块名
描述
课程名称
前端工程师2022版
课程章节
第2章 Vue.js基础语法、生命周期与事件
打卡知识进程
11 / 20
主讲老师
Dell
学习开始时间
2022.08.11 19:07
学习结束时间
2022.08.11 19:44
总计时
37 min
课程收获
computed和method都能实现的功能,建议使用computed的,为什么?‍‍因为它有缓存,性能会比较好一些。
如果是同步操作的话,computed和watch 都能实现的功能,‍‍建议使用computed,因为更加简洁。‍‍
computed计算属性,它是依赖于一些其他的数据属性算出来的一个新的属性。‍‍它有一个特点就是只有依赖的这些数据属性中的某一个发生变化时,
它才会重新的执行返回新的计算属性。‍‍
如果它依赖的东西没变化的话,它是会有缓存的。‍‍
watch其实就很简单,watch的意思就是‍‍侦听器它会监听某一个属性的变化,或者说某一个数据属性的变化,‍‍
当数据属性变化的时候,一般我们做异步操作可以在这里面去做一下,如果是同步操作的话,‍‍它不如computed计算属性简洁。‍‍
如果在开发中能用computed实现的这种功能,尽量用它去实现,‍‍
如果实现不了的功能,我们可以考虑使用watch或者method去实现,‍‍这样的话我们的代码上面会更简洁,性能也会更加有保障。
学习感受/感想/领悟(心得)
14天养成习惯,成功的习惯比成功更重要。

课程内容:
接着昨天的学习内容,今天学习的内容包括:

第2章 Vue.js基础语法、生命周期与事件

2-7 数据,方法,计算属性和侦听器

学完计算属性之后,我们再来学习一个叫做watch侦听器,要写一个侦听器,‍‍我们就在这里定一个叫做watch对象就可以了。

侦听器是什么意思?比如说我现在有一个需求,‍‍当我的某一个count或者说price数据发生变化的时候,‍‍
我希望隔5秒能够在页面上打印出price change这样的一个字符串,如果想做到这一步,我该怎么去做呢?‍‍我数据发生改变,隔5秒去打印一些内容,我就要监听数据的变化。‍‍但是如果你用computed计算属性‍‍监听数据的变化之后,它只能说去返回一个新的内容值,但是它不能做这种异步操作,‍‍不能等5秒再去返回对应的内容。‍‍

一般来说如果你遇到这种异步的情况,你可以用watch去解决这样的问题。‍‍首先我在这里写一个price函数,‍‍这函数的意思是什么?它指的是我现在监听watch的改变,只要watch改变,我就可以在这里面去写一个setTimeout‍‍,3秒,console点log(“price changed”)。
图片描述

我们试一下,这么去写可不可以?回来刷一下。‍‍
图片描述

然后我们在这里尝试去改变price,让它等于5,回车,等3秒,它没发生变化。‍‍这是为什么?

因为price之前就是5,我现在给它改成5,其实并没有变化的,我改成6,回车,我们等3秒,‍‍大家看3秒之后,price changed就打印出来了。

这说明什么了呢?‍‍
这说明我通过watch可以监听一些我们上面定义的变量的改变,【第17到第19行】
然后去做一些异步操作,
当然你还可以去做一些其他的操作,比如说我可以用 watch实现 total 同样的一个效果,‍‍我要怎么去写?
图片描述
图片描述
第一个参数获取到的是我新的 price 的值,也就是刚才我们看见的6,
第二个是老的price的值,就是变化前的5。

我们接下来可以仿照去做一下计算属性,‍‍我们可以在这里写一个叫做newTotal,【第20行】它的值是count乘以pice是10,‍‍

然后我下面就不展示这个total了,我展示newTotal,然后我去watch price的变化,‍‍只要price发生变化,我就让this点newTotal 等于current,当前的price乘以类this点count,保存一下,我现在通过watch‍‍去实现类似于computed里面total一样的效果,把这个值放在哪?

放在newTotal里面,然后我们到页面上刷一下,‍‍大家看一开始是10,我去改一下price等于6它就会变成12,‍‍
图片描述

你会发现它也是很类似于计算属性的一个实现,其实‍‍它就是计算属性底层的一个实现方式。‍‍
图片描述
你对比一下你会发现,
如果watch里面‍‍去做这种侦听器的话,它里面如果不包含异步代码,而是一个同步代码的话,
相对于这种计算属性‍‍的代码,
watch它要一个函数里面还要做各种各样的计算,在上面还要定义初始值是不是就很冗余了?‍‍‍‍

如果一个功能 能用watch这种监听器去实现,‍‍同时也能用computed计算属性去实现,用哪一个会更简单一些?
是不是计算属性要更简单一些?‍‍
小结:
computed和method都能实现的功能,建议使用computed的,为什么?‍‍因为它有缓存,性能会比较好一些。
如果是同步操作的话,computed和watch 都能实现的功能,‍‍建议使用computed,因为更加简洁。‍‍

computed计算属性,它是依赖于一些其他的数据属性算出来的一个新的属性。‍‍
它有一个特点就是只有依赖的这些数据属性中的某一个发生变化时,它才会重新的执行返回新的计算属性。‍‍
如果它依赖的东西没变化的话,它是会有缓存的。‍‍

watch其实就很简单,watch的意思就是‍‍侦听器它会监听某一个属性的变化,或者说某一个数据属性的变化,‍‍当数据属性变化的时候,一般我们做异步操作可以在这里面去做一下,如果是同步操作的话,‍‍它不如computed计算属性简洁。‍‍

如果在开发中能用computed实现的这种功能,尽量用它去实现,‍‍
如果实现不了的功能,我们可以考虑使用watch或者method去实现,‍‍这样的话我们的代码上面会更简洁,性能也会更加有保障。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消