深入浅析Vue。js中计算和方法不同机制

  

在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中计算和方法不同机制,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

深入浅析Vue。js中计算和方法不同机制