双大括号的模板内可以放入表达式,但是但复杂到一定程度时,就需要使用计算属性。
这里声明了一个计算属性reversedMessage,当message发生改变时,依赖message的reversedMessage也会发生改变,计算属性的getter函数是没有副作用的。
计算属性默认只有getter,不过也可以添加setter。
这里的fullName并没有定义,是通过firstName和lastName计算得来的。
只有getter时,只能通过后者来得到fullName,添加setter后,当fullName发生改变时,也可以得到firstName和lastName。
1.计算属性与方法的区别
当然定义一个方法也可以实现相应的功能。两者的区别是:
计算属性是基于它们的依赖进行缓存的,只有当它们的以来发生改变时才会再次计算。如果未发生改变,则立即返回之前的结果,并不会执行函数
方法则不同,不管依赖是否发生变化,都会再次执行,然后返回新的计算结果。
2.计算属性与监听属性(watch)
当有一些数据需要随着其他数据变动而变动时,很容易就会想起watch,实际上很多时候你都可以使用计算属性(computed)。
这两者相比较,计算属性更简单一些,watch很多时候会显得重复。
3.监听器(watch)
虽然大多数情况计算属性都可以满足需要,但有时还是需要使用侦听器。当需要在数据发生变化时执行异步操作或者开销较大的操作时,就需要自定义监听器。
当监听的数据发生变化时,question方法就会执行。除此之外,我们还可以在这个方法里执行异步操作,使用定时器来限制操作的频率吧,添加中间状态等等,这些操作都是无法用计算属性实现的
4.$watch()命令
没看懂,如果有哪位大神有比较通俗易懂的博客希望推荐给我,万分感谢!!