《跟热饭一起学习vue吧》Part.14 计算属性:computed

简介: 《跟热饭一起学习vue吧》Part.14 计算属性:computed


计算属性:computed


大家一看这个标题:


计算属性 是什么意思?不懂。


computed是什么?怎么用,放在哪?也不懂。


没关系,我第一次学习到这的时候 也不懂。所以我这里简单用土话给新人说一下,我们前面学习过 methods吧?就是用来存放各种js函数的那个vue构造器的属性之一。现在要学的这个computed和它几乎是一样的功能,一样的用法。


所以computed同样写在vue的构造其中:


<script>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  },
  methods:{}
  computed: {}
})
</script>


既然都是存放函数的,那么为什么vue作者要弄俩个呢?闲的?当然不是。这俩个虽然在肉眼看起来效果是一样的,但是实际的触发原理却不同。


methods 每次渲染刷新都会触发函数运行。


computed 则只会在检测到依赖的元素或变量发生变化时才会重新运行,其他时候都是使用缓存。


所以这么看起来,computed的性能更好,更适合运转和计算一些复杂耗时的函数。


所以我们才会这么说它:计算属性 。


属性,谁的属性?vue构造器的属性。干嘛的?专门管计算的。


那么怎么使用呢?看这个菜鸟教程的例子:


image.png


上图中,我画上了里面的数据流转路线。


在dom层里的具体标签中,用{{ 函数名 }} 的方式调用了 在computed中的对应函数,这个函数return 的值就会最终显示到 dom的元素标签内。而里面的this.message 指的就是 vue构造器的data当中的同名变量了。


computed 的特有默认属性 get子函数



computed 给自己的内部设置了一种特殊格式的管理方案:

computed: {
    site: {
      get: function () {return this.name + ' ' + this.url}
    }
  }


注意,这里的site只是这个集合的名字而已,你可以随意更改,但是内部的get 方法是固定的名字,你不能更改。


而当你这样写的时候,get就会自动运行,并返回数据给 调用了 site的元素:


<p>{{ site }}</p>


如果你的get方法名字改成别的,那么就不会运行,只有get是自动运行的。


image.png

你可能会问,为什么要这么麻烦?我直接写个site函数里面直接return不好么?非要套这么一层干什么?


这也是我一开始疑惑的地方,但是后来我看到了它的其他用法才明白, 这个computer属性其实和data属性也是有类似功能的重合,它提供了获取功能,但是很多老手喜欢再写个修改变量的方法,也就是set。


那么这时候get和set就是一对,他们的可能都是对某个data变量进行操控,所以就干脆用个site:{} 给它们包起来.....


不过这个set要自己额外的写。


image.png


当然这个用法,现在我们会用,但是并不是完全理解为什么要这么麻烦,存在的意义是什么,我们用其他土办法不一样可以实现么?


这其实就是作者在发现了开发者这个频繁修改数据 获取数据的 需求后,帮你封装好的get和set,让你更简单的去完成任务。

相关文章
|
16天前
|
JavaScript 前端开发
vue学习(15)watch和computed
vue学习(15)watch和computed
116 58
|
8天前
|
缓存 JavaScript 前端开发
vue-day02计算属性,v-bind,v-if,v-for
文章介绍了Vue.js中的计算属性、class与style的绑定、条件渲染和列表渲染的使用。通过示例代码展示了如何使用计算属性简化模板逻辑、如何通过v-bind动态绑定class和style、如何使用v-if进行条件渲染以及如何使用v-for进行列表渲染。这些特性使得Vue.js在构建动态用户界面时更加灵活和强大。
vue-day02计算属性,v-bind,v-if,v-for
|
8天前
|
JavaScript
vue 计算属性,实现复选框的全选和反选 【小案例】
本文通过一个Vue.js小案例,展示了如何使用计算属性实现复选框的全选和反选功能。计算属性的完整写法包括get和set两部分,分别用于获取值和设置值。在全选和反选的场景中,计算属性的get方法用于判断所有复选框是否都已选中,从而控制全选复选框的状态;计算属性的set方法则用于根据全选复选框的状态,批量更新每个复选框的选中状态。通过示例代码和效果图,文章清晰地说明了计算属性在实现这一功能中的作用和效果。
vue 计算属性,实现复选框的全选和反选 【小案例】
|
10天前
如何在 Vue3 中创建一个计算属性?
如何在 Vue3 中创建一个计算属性?
21 1
|
10天前
|
缓存
Vue3 的 computed 和 watch 函数有哪些不同?
Vue3 的 computed 和 watch 函数有哪些不同?
|
11天前
|
JavaScript
Vue3基础(九)___computed
本文介绍了Vue 3中`computed`的两种用法:使用函数和使用对象。通过示例代码展示了如何创建只读的计算属性和可写的计算属性,以及它们在实际开发中的应用。文章还解释了`computed`属性如何依赖其他响应式数据,并在数据变化时更新。
10 0
Vue3基础(九)___computed
|
16天前
|
JavaScript API
vue学习(13)监视属性
vue学习(13)监视属性
30 2
|
22天前
|
缓存 JavaScript
vue学习(12)计算属性
vue学习(12)计算属性
28 2
|
16天前
|
JavaScript
vue学习(14)深度监视
vue学习(14)深度监视
31 0
|
7天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
下一篇
无影云桌面