小谈 Vue 中函数和计算属性的区别

简介: 小谈 Vue 中函数和计算属性的区别

vue 中存在函数和计算属性,部分开发人员其实并不清楚函数和计算属性的区别,甚至有些开发人员还认为函数和计算属性在任何情况下都能相互转换。情况真的是这样吗?下面我就来简单的说一下函数和计算属性的区别。

首先我们来看一个例子,在网页中分别使用计算属性和函数实现姓名拼接,代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Title</title>
  </head>
  <body>
    <div id="app">
      <div>
        <label>函数拼接出来的结果:</label>
        <p>{{getFullName()}}</p>
        <p>{{getFullName()}}</p>
        <p>{{getFullName()}}</p>
        <p>{{getFullName()}}</p>
        <br/>
        <label>计算属性拼接出来的结果:</label>
        <p>{{fullName}}</p>
        <p>{{fullName}}</p>
        <p>{{fullName}}</p>
        <p>{{fullName}}</p>
      </div>
    </div>
    <script src="https://unpkg.com/vue@next"></script>
    <script>
      const app = Vue.createApp({
        data() {
          return {
            firstName: '张',
            lastName: '三',
          }
        },
        methods: {
          getFullName() {
            console.log("----getFullName()----")
            return this.firstName + this.lastName;
          }
        },
        computed:{
          fullName(){
            console.log("----fullName()----")
            return this.firstName + this.lastName;
          }
        }
      }).mount("#app")
    </script>
  </body>
</html>

我们运行代码通过控制台可以看到类似于如下的输出:

image.png

getFullName 输出了四次,fullName 只输出了一次。一定有同学要问了,页面上都是输出了四次为什么计算属性 fullName 没有输出四次呢?这是因为计算属性是基于它们的依赖进行缓存的(这里的依赖就是 firstName 和 lastName),只在相关依赖发生改变时它们才会重新求值。在依赖值不变的情况下我们多次访问计算属性,返回的永远是缓存的结果。所以,当我们要在页面上进行大量耗时的运算的时候最好使用计算属性。


目录
相关文章
|
2月前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
142 60
|
2月前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
2月前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
3月前
|
JavaScript API
vue3知识点:ref函数
vue3知识点:ref函数
44 2
|
3月前
|
JavaScript API
vue3知识点:自定义hook函数
vue3知识点:自定义hook函数
34 2
|
3月前
|
API
vue3知识点:reactive函数
vue3知识点:reactive函数
47 1
|
3月前
|
缓存 JavaScript
Vue 中 computed 与 method 的区别
【10月更文挑战第15天】computed 和 method 是 Vue 中两个重要的选项,它们在功能和特点上存在着明显的区别。理解并合理运用它们的区别,可以帮助我们构建更高效、更具可维护性的 Vue 应用。在实际开发中,要根据具体情况灵活选择使用,以满足不同的需求。
52 2
|
21天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
110 1
|
1月前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
56 1
vue学习第一章