双大括号的模板内可以放入表达式,但是但复杂到一定程度时,就需要使用计算属性。

vue学习之路-----计算属性computed,监听器wtach,$watch()命令

这里声明了一个计算属性reversedMessage,当message发生改变时,依赖messagereversedMessage也会发生改变,计算属性的getter函数是没有副作用的。

 

vue学习之路-----计算属性computed,监听器wtach,$watch()命令

计算属性默认只有getter,不过也可以添加setter

这里的fullName并没有定义,是通过firstNamelastName计算得来的。

只有getter时,只能通过后者来得到fullName,添加setter后,当fullName发生改变时,也可以得到firstNamelastName

 

1.计算属性与方法的区别

当然定义一个方法也可以实现相应的功能。两者的区别是:

计算属性是基于它们的依赖进行缓存的,只有当它们的以来发生改变时才会再次计算。如果未发生改变,则立即返回之前的结果,并不会执行函数

方法则不同,不管依赖是否发生变化,都会再次执行,然后返回新的计算结果。

 

2.计算属性与监听属性(watch)

当有一些数据需要随着其他数据变动而变动时,很容易就会想起watch,实际上很多时候你都可以使用计算属性(computed)

这两者相比较,计算属性更简单一些,watch很多时候会显得重复。

 

3.监听器(watch)

虽然大多数情况计算属性都可以满足需要,但有时还是需要使用侦听器。当需要在数据发生变化时执行异步操作或者开销较大的操作时,就需要自定义监听器。

vue学习之路-----计算属性computed,监听器wtach,$watch()命令

当监听的数据发生变化时,question方法就会执行。除此之外,我们还可以在这个方法里执行异步操作使用定时器来限制操作的频率吧,添加中间状态等等,这些操作都是无法用计算属性实现的

 

4.$watch()命令

没看懂,如果有哪位大神有比较通俗易懂的博客希望推荐给我,万分感谢!!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
相关资源
相似解决方案