首页 > 其他分享 >vuejs从入门到精通——计算属性缓存 vs 方法

vuejs从入门到精通——计算属性缓存 vs 方法

时间:2023-02-04 19:45:16浏览次数:39  
标签:缓存 vuejs list vs 计算 now 属性

计算属性缓存 vs 方法

https://cn.vuejs.org/guide/essentials/computed.html#basic-example

template:

<p>{{ calculateBooksMessage() }}</p>

  js:

// 组件中
function calculateBooksMessage() {
  return author.books.length > 0 ? 'Yes' : 'No'
}

你可能注意到我们在表达式中像这样调用一个函数也会获得和计算属性相同的结果:

  若我们将同样的函数定义为一个方法而不是计算属性,两种方式在结果上确实是完全相同的,然而,不同之处在于计算属性值会基于其响应式依赖被缓存。一个计算属性仅会在其响应式依赖更新时才重新计算。这意味着只要author.books不改变,无论多少次访问publishedBooksMessage都会立即返回先前的计算结果,而不用重复执行 getter 函数。

  这也解释了为什么下面的计算属性永远不会更新,因为Date.now()并不是一个响应式依赖:

  js:

const now = computed(() => Date.now())

  相比之下,方法调用总是会在重渲染发生时再次执行函数。

  为什么需要缓存呢?想象一下我们有一个非常耗性能的计算属性list,需要循环一个巨大的数组并做许多计算逻辑,并且可能也有其他计算属性依赖于list。没有缓存的话,我们会重复执行非常多次list的 getter,然而这实际上没有必要!如果你确定不需要缓存,那么也可以使用方法调用。

标签:缓存,vuejs,list,vs,计算,now,属性
From: https://www.cnblogs.com/zuoyang/p/17092203.html

相关文章

  • vuejs从入门到精通——可写计算属性
    可写计算属性https://cn.vuejs.org/guide/essentials/computed.html#basic-example 计算属性默认是只读的。当你尝试修改一个计算属性时,你会收到一个运行时警告。只在......
  • vuejs从入门到精通——计算属性
    计算属性https://cn.vuejs.org/guide/essentials/computed.html模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。......
  • GMVSE源代码学习记录之“参数配置”
    一、参数配置Parameters:NameTypeDescriptionNotemodeenum(str)pretrain,trainorevaluate.模式:预训练、训练、评估data_filenamestrdatafile(e.......
  • Redis 缓存穿透、缓存雪崩、缓存击穿
    Redis缓存穿透、缓存雪崩、缓存击穿 上一篇压力测试、性能优化、jvm调优下一篇缓存数据一致问题解决方案本文作者:Little_Monster-lhq本文链接:https://www.cn......
  • 79、缓存---SpringCache---原理与不足
    /***Spring-Cache的不足:*1)读模式:*缓存穿透:查询一个null的数据;====》解决:缓存空数据:spring.cache.redis.cache-null-values=true*缓存击穿:大量并发进......
  • 78、缓存---SpringCache---@CacheEvict
    @CacheEvict(value={"catagory"},key="'OneLevelCategory'")------失效模式例如,当我们修改菜单时,就会删除catagory缓存中的OneLevelCategory缓存如果我们修改......
  • 使用Varnish部署缓存服务器
    一、Varnish介绍1、varnishVarnish是一款高性能、开源的缓存反向代理服务器。它从客户端接受请求,并尝试从缓存中响应请求,如果无法从缓存中提供响应,Varnish向后端服......
  • Redis缓存穿透、击穿、雪崩
    文章目录​​缓存穿透​​​​缓存雪崩​​​​缓存击穿​​​​代码实战部分​​​​缓存击穿实战代码封装​​​​缓存穿透解决​​Redis目前是非常流行的缓存数据库,缓存......
  • 【缓存策略及实践】前端如何配置 HTTP 缓存机制
    缓存的目的主要作用是可以加快资源获取速度,提升用户体验,减少网络传输,缓解服务端的压力。强缓存不需要发送请求到服务端,直接读取浏览器本地缓存,显示的HTTP状态码是200......
  • Spring Boot 集成 Redis 实现数据缓存
    SpringBoot集成Redis实现缓存主要分为以下三步:加入Redis依赖加入Redis配置演示Redis缓存加入依赖首先创建一个项目,在项目中加入Redis依赖,项目依赖如下......