Vue的计算属性与监听属性

一、计算属性

       1、计算属性需要定义在computed选项中。当计算属性依赖的数据发送变化时,这个属性的值会自动更新,所有依赖该属性的数据绑定也会同步进行更新,在一个计算属性中可以实现各种复杂的逻辑,包括运算、函数调用等。

原字符串:{{str}}

新字符串:{{newstr}}

Vue的计算属性与监听属性_第1张图片

上述代码定义了一个计算属性newstr,并在模板中绑定了该计算属性,newstr属性的值怡莱于str属性的值,当str属性发生变化时,newstr属性的值也会自动更新。

        2、getter和setter。每一个计算属性都包含一个getter和setter。当没有指明方法时,默认使用getter方法来读取数据,getter用来执行读取操作,而setter用来执行设置值的操作,当手动更新时就会触发setter,并触发视图更新。

姓名:{{fullname}}

Vue的计算属性与监听属性_第2张图片

如上, 在代码中定义了一个计算属性fullname,在为其重新赋值时,Vue.js会自动调用setter,模板中绑定的值也会随之更新,如果没有设置setter方法重新赋值的话,fullname的值会改变,但视图并不会更新。

        3、计算属性缓存。实现一个功能,通过computed计算属性和methods方法同样可以实现,结果也相同,然而不同的是计算属性是基于他们的依赖进行缓存的,当页面发生改变时,如果依赖的数据未发生变化,使用计算属性获取的值就一直是缓存值,只有依赖的数据发生改变时才会重新执行getter。

methods方法:{{getTimeA()}}

computed方法:{{getTimeB}}

 Vue的计算属性与监听属性_第3张图片

 如上,每次在input输入时,vue实例的数据发生改变,页面会进行重新渲染,methods方法将会更新新的时间,而computs依赖于缓存,每次访问getTimeB计算属性时会立即返回之前返回的计算结果,而不会再次执行函数,因此会输出缓存的时间。

二、监听属性

        监听属性是Vue.js提供的一种用来监听和响应Vue实例中的数据变化的方式。在监听数据对象中的属性时,每当监听的属性发生变化时,都会执行特定的操作。监听属性可以定义在Vue实例选项之中,也可以使用实例方法xxx.$watch()

Vue的计算属性与监听属性_第4张图片

        deep选项,如果要监听的属性是一个对象,为了监听对象内布值的变化,可以在选项参数中设置deep选项的值为true。 

Vue的计算属性与监听属性_第5张图片

 

 

你可能感兴趣的:(vue,vue.js,javascript,前端)