深入浅析Vue.js中 computed和methods不同机制

这篇文章给大家介绍了vue.js中 computedmethods不同机制,在vue.js中,methods和computed两种方式来动态当作方法使用,文中还给大家提到了computed和methods的区别,感兴趣的朋友一起看看吧

在vue.js中,有methods和computed两种方式来动态当作方法来用的

1.首先最明显的不同 就是调用的时候,methods要加上()

2.我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。

而使用 methods ,在重新渲染的时候,函数总会重新调用执行

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

为了方便理解,先上一段源码

nbsp;html>          title            

        

{{now}}

      

{{now}}

      

{{now}}

      

{{now}}

      
          

        

{{now()}}

      

{{now()}}

      

{{now()}}

      

{{now()}}

         var myVue = new Vue({ el: ".test", computed: { now: function() { var yanshi = 0; for(var o = 0; o < 2000; o++) { //延时 for(var q = 0; q < 2000; q++) { yanshi++; } } return Date.now() } } }); var vue2 = new Vue({ el: '.test2', methods: { now: function() { var yanshi = 0; for(var o = 0; o < 2000; o++) { for(var q = 0; q < 2000; q++) { yanshi++; } } return Date.now() } } })

登录后复制

运行结果如上,可以看出computed计算属性的话,每次进入页面将一直沿用第一次的信息,不会再触发now,这就是依赖缓存。(有延时的情况下 多次输出时间相同)

那什么是相关依赖发生改变时才会重新取值呢 比方说reversedMessage function()计算属性中调用了message变量

就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。

而methods是实时的,在重新渲染时,函数总会重新调用执行,不会缓存,(多次输出时间不同)

可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter :所以其实computed也是可以传参的。

ps:下面看下vue计算属性computed和methods的区别

在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。computed称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用computed;简单示例:要求:现在要返回num1和num2的和;  new Vue({    el:"#box",    data:{        num1:0,        num2:0        }    computed:{          result:function(){            return this.num1 + this.num2              // 计算属性必须有一个返回值        }    }   })methods:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和computed的一点不同之处;methods的示例:要求:点击弹出  new Vue({    el:"#box",    data:{        num1:0,        num2:0        }    methods:{          do:function(){           alert('ok')           //这里根据情况,可以返回有返回值也可以没有返回值。        }    }   })对比computed 和 methods:computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

Boa服务器下的ajax与cgi通信(图文教程)

Ajax调用restful接口传送Json格式数据的方式(附有代码)

IE8用ajax访问不能每次都刷新的问题

以上就是深入浅析Vue.js中 computed和methods不同机制的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 07:23:42
下一篇 2025年3月3日 17:51:50

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

相关推荐

  • 如何使用Vue+Nuxt.js 实现服务端渲染

    这次给大家带来如何使用Vue+Nuxt.js 实现服务端渲染,使用Vue+Nuxt.js 实现服务端渲染的注意事项有哪些,下面就是实战案例,一起来看一下。 直接使用 Vue 构建前端单页面应用,页面源码时只有简单的几行 html,这并不利于…

    2025年3月8日 编程技术
    200
  • JavaScript分步实现一个出生日期的正则表达式

    本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验的完整过程。对出生日期正则表达式感兴趣的朋友参考下吧 简言 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验的完整过…

    2025年3月8日
    200
  • Vue.js中的computed工作原理

    这篇文章,我们通过实现一个简单版的和vue中computed具有相同功能的函数来了解computed是如何工作的。对vue.js中的computed工作原理感兴趣的朋友一起学习吧 JS属性: JavaScript有一个特性是 Object.…

    编程技术 2025年3月8日
    200
  • 基于JavaScript实现幸运抽奖页面

    这篇文章主要为大家详细介绍了基于javascript实现幸运抽奖页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下  JS实现简单的幸运抽奖页面,供大家参考,具体内容如下  效果图: 图片素材 : 代码如下,复制即可使用: 立即学习“J…

    2025年3月8日
    200
  • JS中的回调函数实例浅析

    这篇文章主要介绍了js中的回调函数,结合实例形式简单分析了javascript回调函数的感念、功能、使用方法及相关注意事项,需要的朋友可以参考下 本文实例讲述了JS中的回调函数。分享给大家供大家参考,具体如下: 在说回调函数之前,不妨先看一…

    编程技术 2025年3月8日
    200
  • JS实现为动态添加的元素增加事件功能示例

    这篇文章主要介绍了js实现为动态添加的元素增加事件功能,结合实例形式分析了javascript基于事件委托实现针对动态添加的元素增加事件的相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS实现为动态添加的元素增加事件功能。分享给大家供大…

    2025年3月8日
    200
  • JS实现遍历不规则多维数组的方法

    这篇文章主要介绍了js实现遍历不规则多维数组的方法,涉及javascript数组递归遍历相关实现与使用技巧,需要的朋友可以参考下 本文实例讲述了JS实现遍历不规则多维数组的方法。分享给大家供大家参考,具体如下: 直接进入正文: 我们有时候处…

    2025年3月8日
    200
  • 使用Vue.js和Flask来构建一个单页的App的示例

    本篇文章主要介绍了使用vue.js和flask来构建一个单页的app的示例,我觉得挺不错的,现在分享给大家,也给大家做个参考。一起过来看看吧 在这个教程中,我们将讲解如何将vue.js单页应用与Flask后端进行连接。 一般来说,如果你只是…

    2025年3月8日 编程技术
    200
  • JS代码实现电脑配置检测功能

    这篇文章主要介绍了js代码实现电脑配置检测功能,需要的朋友可以参考下 下面一段代码给大家分享js代码实现电脑配置检测功能,具体代码如下所示: nbsp;html>               h1 { text-align: cent…

    2025年3月8日
    200
  • javascript与PHP动态往类中添加方法对比

    这篇文章主要介绍了javascript与php动态往类中添加方法对比的相关资料,需要的朋友可以参考下 1.JAVASCRIPT: a. 代码: var a = function(){}var my_a = new a()my_a.say =…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论