在vue.js中、有方法和计算两种方式来动态当作方法来用的
1。首先最明显的不同就是调用的时候,方法要加上()
2。我们可以使用方法来替代计算,效果上两个都是一样的,但是计算是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。
而使用的方法,在重新渲染的时候,函数总会重新调用执行
为了方便理解,先上一段源码
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> title & lt;脚本src=" https://cdn.bootcss.com/vue/2.4.2/vue.min.js "祝辞& lt;/script> & lt;/head> & lt; body> & lt; div类=安馐浴北?& lt; !——计算计算属性——比; & lt; p>{{现在}}& lt;/p> & lt; p>{{现在}}& lt;/p> & lt; p>{{现在}}& lt;/p> & lt; p>{{现在}}& lt;/p> & lt;人力资源/比;& lt; !——横线分割——比; & lt;/div> & lt; div类=皌est2”比;& lt; !——方法方法,注意新()加了括号——比; & lt; p>{{现在()}}& lt;/p> & lt; p>{{现在()}}& lt;/p> & lt; p>{{现在()}}& lt;/p> & lt; p>{{现在()}}& lt;/p> & lt;/div> & lt;/body> & lt;脚本type=" text/javascript祝辞 var myVue=new Vue ({ 埃尔:“test”, 计算:{ 现在:函数(){ var偃师=0; (var o=0;o & lt;2000;o + +){//延时 (var q=0;问& lt;2000;q + +) { 偃师+ +; } } 返回Date.now () } } }); var vue2=new Vue ({ 埃尔:“.test2”, 方法:{ 现在:函数(){ var偃师=0; (var o=0;o & lt;2000;o + +) { (var q=0;问& lt;2000;q + +) { 偃师+ +; } } 返回Date.now () } } }) & lt;/script> & lt;/html>
运行结果如上,可以看出计算计算属性的话,每次进入页面将一直沿用第一次的信息,不会再触发,这就是依赖缓存。(有延时的情况下多次输出时间相同)
那什么是相关依赖发生改变时才会重新取值呢比方说reversedMessage函数()计算属性中调用了消息变量
就意味着只要消息还没有发生改变,多次访问reversedMessage计算属性会立即返回之前的计算结果,而不必再次执行函数。
而方法是实时的,在重新渲染时,函数总会重新调用执行,不会缓存,(多次输出时间不同)
可以说使用计算性能会更好,但是如果你不希望缓存,你可以使用方法属性。
计算属性默认只有getter,不过在需要时你也可以提供一个setter:所以其计算也实是可以传参的。
在新Vue的配置参数中的计算和方法都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用Vue。 计算称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用计算; 简单示例: 要求: & lt;输入类型=拔谋緑模型=" num1祝辞& lt;输入类型=拔谋緑模型=皀um2”比; 现在要返回num1和num2的和; & lt; script> 新Vue ({ 埃尔:“#箱”, 数据:{ num1:0, num2:0 } 计算:{ 结果:函数(){ 返回。num1 + this.num2//计算属性必须有一个返回值 } } }) & lt;/script> 方法:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和计算的一点不同之处; 方法的示例: 要求: & lt; \按钮@click=?)”的在点击弹出& lt; \/button> & lt; script> 新Vue ({ 埃尔:“#箱”, 数据:{ num1:0, num2:0 } 方法:{ 做的事:函数(){ alert('好的')//这里根据情况,可以返回有返回值也可以没有返回值。 } } }) & lt;/script> 对比和计算方法: 计算计算的结果如果不发生改变就不会触这结果发个函数。而中方法一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把中计算的方法写到方法中会浪费性能。 计算必须返回一个值页面绑定的才能取得值,而方法中可以只执行逻辑代码,可以有返回值,也可以没有。
以上所述是小编给大家介绍的Vue。js中计算和方法不同机制,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!