Vue中computed和method之间有什么不同点

本篇文章给大家介绍一下vuecomputedmethod的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Vue中computed和method之间有什么不同点

1.computed区别于method的两个核心

在官方文档中,强调了computed区别于method最重要的两点

computed是属性调用,而methods是函数调用

立即学习“前端免费学习笔记(深入)”;

computed带有缓存功能,而methods不是

OK,下面我们看一个具体的例子

    

{{message}}

    

{{methodTest}}

    

{{methodTest()}}

    

{{methodTest()}}

    

{{methodTest()}}

    

{{computedTest}}

    

{{computedTest}}

let vm = new Vue({    el: '#app',    data: {        message: '我是消息,'    },    methods: {        methodTest() {            return this.message + '现在我用的是methods'        }    },    computed: {        computedTest() {            return this.message + '现在我用的是computed'        }    }})

登录后复制

2. computed的属性调用

细心的朋友可能已经发现了,在HTML的插值里

computed定义的方法我们是以属性访问的形式调用的,{{computedTest}}

但是methods定义的方法,我们必须要加上()来调用,如{{methodTest()}},否则,视图会出现test1的情况,见下图

1.png

3. computed的缓存功能

首先,我们要明白缓存究竟有什么用?

相比大家都知道HTTP缓存,其核心作用就是对一些服务端未更新的资源进行复用,避免一些无谓的请求,优化了用户的体验

对于computed也是一样的:

在上面的例子中,methods定义的方法是以函数调用的形式来访问的,那么test2-1,test2-2,test2-3是反复地将methodTest方法运行了三遍,如果我们碰到一个场景,需要1000个methodTest的返回值,那么毫无疑问,这势必造成大量的浪费

更恐怖的是,如果你更改了message的值,那么这1000个methodTest方法每一个又会重新计算。。。。

所以,官方文档才反复强调对于任何复杂逻辑,你都应当使用计算属性

computed依赖于data中的数据,只有在它的相关依赖数据发生改变时才会重新求值

如上例,在Vue实例化的时候,computed定义computedTest方法会做一次计算,返回一个值,在随后的代码编写中,只要computedTest方法依赖的message数据不发生改变,computedTest方法是不会重新计算的,也就是说test3-1,test3-2是直接拿到了返回值,而非是computedTest方法重新计算的结果。

这样的好处也是显而易见的,同样的,如果我们碰到一个场景,需要1000个computedTest的返回值,那么毫无疑问,这相对于methods而言,将大大地节约内存

哪怕你改变了message的值,computedTest也只会计算一次而已

4. computed的其它说明

computed其实是既可以当做属性访问也可以当做方法访问

computed的由来有一个重要原因,就是防止文本插值中逻辑过重,导致不易维护

相关推荐:

2020年前端vue面试题大汇总(附答案)

2020年前端vue面试题大汇总(附答案)

更多编程相关知识,请访问:2020年前端vue面试题大汇总(附答案)!!

以上就是Vue中computed和method之间有什么不同点的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3023381.html

(0)
上一篇 2025年3月13日 06:06:01
下一篇 2025年3月13日 06:06:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue项目中关闭Eslint校验的方法介绍

    本篇文章给大家介绍一下在vue项目中如何关闭eslint校验。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 在使用vue-cli创建vue项目的时候,有一个选项是问你是否使用Eslint来规范你的代码,我选择了是。 项目…

    2025年3月13日
    200
  • Vue中Computed属性、Methods和Watch之间的差异

    对于那些刚开始学习Vue的人来说,方法,计算属性和观察者之间的差异让人有些困惑。尽管经常可以使用它们中的每一个来完成或多或少相同的事情,但是知道它们在哪些方面优于其他的是很重要的。 在这个快速技巧中,我们将研究Vue应用程序的这三个重要方面…

    2025年3月13日
    200
  • Vue项目中使用异步组件来优化性能

    在使用JavaScript框架创建大型应用程序时,考虑组件结构非常重要。通过考虑组件结构,可以避免在运行时加载每个组件并减慢应用程序的速度。在构建应用程序时,您还可以避免向用户返回不必要的数据或创建整体糟糕的用户体验。 React和Angu…

    2025年3月13日
    200
  • 分享Vue项目中会用到的一些实战技巧点

    在开发Vue的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天小编就整理了几个在项目中会用到的一些实战技巧点,希望可以帮助到正在努力赚钱的你。江湖规矩,先赞后看,艳遇不断。 …

    2025年3月13日
    200
  • Vuex中常用知识点(总结)

    如果你之前使用过vue.js,你一定知道在vue中各个组件之间传值的痛苦,在vue中我们可以使用vuex来保存我们需要管理的状态值,下面我们就来看一下vuex中常用的一些知识点,希望对大家有一定的帮助。 一、为什么要使用Vuex 1、多个组…

    2025年3月13日
    200
  • 详解Vue中的无渲染行为插槽

    在本文中我们讨论 Vue 中的无渲染插槽模式能够帮助解决哪些问题。 在 Vue.js 2.3.0 中引入的作用域插槽显著提高了组件的可重用性。无渲染组件模式应运而生,解决了提供可重用行为和可插入表示的问题。 在这里,我们将会看到如何解决相反…

    2025年3月13日
    200
  • 了解一下Vue中的插槽

    Vue插槽,是学习vue中必不可少的一节,当初刚接触vue的时候,对这些掌握的一知半解,特别是作用域插槽一直没明白。 后面越来越发现插槽的好用。 分享一下插槽的一些知识吧。 一、插槽内容 立即学习“前端免费学习笔记(深入)”; 一句话:插槽…

    2025年3月13日 编程技术
    200
  • vue如何实现一个电子签名组件?

    在生活中我们使用到电子签名最多的地方可能就是银行了,每次都会让你留下大名。今天我们就要用vue实现一个电子签名的面板 想要绘制图形,第一步想到的就是使用canvas标签,在之前的文章里我们使用canvas实现了一个前端生成图形验证码的组件,…

    2025年3月13日
    200
  • 深入了解Vue自带的过滤器

    过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数。Vue有很多很便利的过滤器,本文为大家介绍了vue自带的9种过滤器,希望对大家有一定的帮助。 一、过滤器写法 {{ message | Filter}} 登录后复…

    2025年3月13日
    200
  • vue如何实现局部刷新?(代码示例)

    我们都知道,vue的组件化是他最强大的核心所在,路由也是特别可爱的一部分,但是路由适合一些大型的组件,看url路径的时候会出现变化,但是有时候我们想要一些小的局部小刷新,这个时候就需要用到它的动态组件了。 Vue 自身保留的  元素,可以将…

    2025年3月13日
    200

发表回复

登录后才能评论