计算属性及计算属性与methods的使用区别

简介: 本文解释了Vue.js中的计算属性(computed properties)的概念和使用方法,并与methods方法进行了对比。计算属性基于现有数据自动重新计算,具有缓存效果,适用于数据的处理和结果展示。而methods方法每次调用都会执行,适合处理业务逻辑。通过示例代码,展示了计算属性和methods方法的区别。

1.计算属性的概念和简单使用

计算属性:基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算。

语法:

  1. 声明在computed配置项中,一个计算属性对应里面的一个函数
  2. 使用起来和普通属性一样使用 { {计算属性名}}

示例:

<div id="app">
  {
  {sum}}
</div>

<script>
  let app = new Vue({
    
    el:'#app',
    data:{
    
      num1:10,
      num2:20
    },
    computed:{
    
      sum(){
    
        let rs = this.num1+this.num2
        return rs
      }
    }
  })
</script>

通过上面的代码,可以看出计算属性貌似和方法差不多,但实际上不是,计算属性会有一个缓存,效率高的多。

2.计算属性 vs methods 方法

  1. computed 计算属性
    作用:封装了一段对于数据的处理,求得一个结果。
    语法:
    ① 写在 computed 配置项中
    ② 作为属性,直接使用 → this.计算属性 { { 计算属性 }}

计算属性的缓存特性 ,计算属性会对计算出来的结果缓存,再次使用直接读取缓存,
依赖项变化了,会自动重新计算 然后 并再次缓存。

  1. methods 方法
    作用:给实例提供一个方法,调用以处理业务逻辑。
    语法:
    ① 写在 methods 配置项中
    ② 作为方法,需要调用 → this.方法名( ) { { 方法名() }} @事件名=“方法名”

  2. 一个小例子,带你搞懂计算属性和methods方法

<div id="app">
    <h2>methods======={
  {getSum()}}</h2>
    <h3>computed======={
  {sum}}</h3>
    <p>computed======={
  {sum}}</p>
    <span>methods======={
  {getSum()}}</span>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    const app = new Vue({
    
        el:'#app',
        data:{
    
            num1:0,
            num2:3,
        },
        computed:{
    
            sum(){
    
                let rs = this.num1 + this.num2
                console.log("Sum()-----computed")
                return rs
            }
        },
        methods:{
    
            getSum(){
    
                let rs = this.num1 + this.num2
                console.log("getSum()-----methods")
                return rs 
            }
        }
    })
</script>

在这里插入图片描述

tips:计算属性使用了两次只在初始化调用了一次,methods方法使用两次调用两次。

计算属性具有缓存的特性,一次计算可以多次使用,而methods方法不是,调用一次便是一次。
计算属性用于对数据的处理,求得一个结果。methods方法主要是用来处理业务逻辑体。


相关文章
|
SQL 存储 关系型数据库
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
13123 0
|
存储 前端开发 对象存储
一文搞懂Map与Set的用法和区别!
前言 作为前端开发人员,我们最常用的一些数据结构就是 Object、Array 之类的,毕竟它们使用起来非常的方便。往往有些刚入门的同学都会忽视 Set 和 Map 这两种数据结构的存在,因为能用 set 和 map 实现的,基本上也可以使用对象或数组实现,而且还更简单。 但是,存在必然合理,当你真正了解 Map 和 Set 之后,你就会发现它们原来时如此美好!
2878 0
一文搞懂Map与Set的用法和区别!
|
5月前
|
人工智能 Java API
DeepSeek R1 集成难题完美解决:DeepSeek4j来帮你解决
DeepSeek R1 是一款强大的 AI 模型,但在 Java 生态中集成存在诸多挑战,如思维链丢失、参数限制和流式处理不完善等问题。DeepSeek4j 的出现解决了这些难题,它专为 Java 开发者设计,支持完整思维链保留、流畅的流式响应和简单优雅的 API。通过与 Spring Boot 的无缝集成,开发者只需几行代码即可快速接入 DeepSeek R1。此外,DeepSeek4j 提供调试页面、性能优化功能(如 GPU 加速和模型缓存),助力开发者高效利用 AI 技术,推动智能化应用落地。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
|
11月前
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
640 5
|
11月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
1063 11
|
JavaScript 前端开发 开发者
深入理解 TypeScript:从基础到进阶
TypeScript 作为 JavaScript 的超集,通过静态类型系统提升了代码组织与错误检测能力,广泛应用于前端开发。本文介绍 TypeScript 的核心概念(类型系统、接口、类、模块)及基础特性(基础类型、接口、类和继承),并深入探讨泛型、高级类型和装饰器等进阶特性,帮助开发者构建更健壮、可维护的应用。
|
11月前
|
缓存 JavaScript Serverless
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
608 0
|
机器学习/深度学习 算法 计算机视觉
【YOLOv8改进 - 注意力机制】RCS-OSA :减少通道的空间对象注意力,高效且涨点
YOLOv8专栏探讨了YOLO系列的创新改进,提出RCS-YOLO模型,它在脑肿瘤检测中超越YOLOv6/v7/v8,精度提升1%,速度增快60%(达到114.8 FPS)。RCS-OSA模块结合RepVGG/ShuffleNet优点,通过通道重参数化和混洗优化卷积,提升速度和准确性。代码和论文可在提供的链接获取。
|
前端开发 JavaScript 数据可视化
深入理解MVVM架构模式
深入理解MVVM架构模式
2004 0