深入浅析Vue.js中 computed和methods不同机制
网络编程 2021-07-04 17:33www.168986.cn编程入门
这篇文章给大家介绍了Vue.js中 puted和methods不同机制,在vue.js中,methods和puted两种方式来动态当作方法使用,文中还给大家提到了puted和methods的区别,感兴趣的朋友一起看看吧
在vue.js中,有methods和puted两种方式来动态当作方法来用的
1.最明显的不同 就是调用的时候,methods要加上()
2.我们可以使用 methods 来替代 puted,效果上两个都是一样的, puted 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。
而使用 methods ,在重新渲染的时候,函数总会重新调用执行
为了方便理解,先上一段源码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>title</title> <script src="https://cdn.bootcss./vue/2.4.2/vue.min.js"></script> </head> <body> <div class="test"> <!--puted计算属性--> <p>{{now}}</p> <p>{{now}}</p> <p>{{now}}</p> <p>{{now}}</p> <hr /> <!--横线分割--> </div> <div class="test2"> <!--methods方法,注意new()加了括号--> <p>{{now()}}</p> <p>{{now()}}</p> <p>{{now()}}</p> <p>{{now()}}</p> </div> </body> <script type="text/javascript"> var myVue = new Vue({ el: ".test", puted: { 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() } } }) </script> </html>
运行结果如上,可以看出puted计算属性的话,每次进入页面将一直沿用第一次的信息,不会再触发now,这就是依赖缓存。(有延时的情况下 多次输出时间相同)
那什么是相关依赖发生改变时才会重新取值呢 比方说reversedMessage function()计算属性中调用了message变量
就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必执行函数。
而methods是实时的,在重新渲染时,函数总会重新调用执行,不会缓存,(多次输出时间不同)
可以说使用 puted 性能会更好,如果你不希望缓存,你可以使用 methods 属性。
puted 属性默认只有 getter ,不过在需要时你也可以提供一个 setter 所以其实puted也是可以传参的。
ps狼蚁网站SEO优化看下vue计算属性puted和methods的区别
在new Vue的配置参数中的puted和methods都可以处理大量的逻辑代码,什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。 puted称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,要取得的结果的时候可以用puted; 简单示例 要求 <input type="text v-model="num1"><input type="text v-model="num2"> 现在要返回num1和num2的和; <script> new Vue({ el:"#box", data:{ num1:0, num2:0 } puted:{ result:function(){ return this.num1 + this.num2 // 计算属性必须有一个返回值 } } }) </script> methods是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和puted的一点不同之处; methods的示例 要求 <\button @click="do()">点击弹出<\/button> <script> new Vue({ el:"#box", data:{ num1:0, num2:0 } methods:{ do:function(){ alert('ok') //这里根据情况,可以返回有返回值也可以没有返回值。 } } }) </script> 对比puted 和 methods puted计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把puted中的方法写到method中会浪费性能。 puted必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。
以上所述是长沙网络推广给大家介绍的Vue.js中 puted和methods不同机制,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
上一篇:浅谈Webpack 持久化缓存实践
下一篇:vue.js数据绑定操作详解
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程