您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 酒泉分类信息网,免费分类信息发布

Vue.js中computed与methods使用与区别

2024/2/24 7:59:28发布26次查看
这次给大家带来vue.js中computed与methods使用与区别,vue.js中computed与methods使用的注意事项有哪些,下面就是实战案例,一起来看一下。
在vue.js中,有methods和computed两种方式来动态当作方法来用的
1.首先最明显的不同 就是调用的时候,methods要加上()
2.我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。
而使用 methods ,在重新渲染的时候,函数总会重新调用执行
为了方便理解,先上一段源码
<!doctype html> <html>   <head>     <meta charset="utf-8">     <title>title</title>     <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>   </head>   <body>     <p class="test">  <!--computed计算属性-->       <p>{{now}}</p>       <p>{{now}}</p>       <p>{{now}}</p>       <p>{{now}}</p>       <hr />      <!--横线分割--> </p>     <p class="test2">  <!--methods方法,注意new()加了括号-->       <p>{{now()}}</p>       <p>{{now()}}</p>       <p>{{now()}}</p>       <p>{{now()}}</p>     </p>   </body>   <script type="text/javascript">     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()         }       }     })   </script> </html>
运行结果如上,可以看出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; 简单示例: 要求: <input type="text v-model="num1"><input type="text v-model="num2"> 现在要返回num1和num2的和; <script>   new vue({     el:#box,     data:{         num1:0,         num2:0         }     computed:{           result:function(){             return this.num1 + this.num2               // 计算属性必须有一个返回值         }     }    }) </script> methods:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和computed的一点不同之处; methods的示例: 要求: <\button @click="do()">点击弹出<\/button> <script>   new vue({     el:#box,     data:{         num1:0,         num2:0         }     methods:{           do:function(){            alert('ok')            //这里根据情况,可以返回有返回值也可以没有返回值。         }     }    }) </script> 对比computed 和 methods: computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。 computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
angular component使用案例详解
js原始值与引用值有哪些储存方式
以上就是vue.js中computed与methods使用与区别的详细内容。
酒泉分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录