浅析Vue中method与computed的区别


Posted in Javascript onMarch 06, 2018

在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。

computed称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用computed;

为了说明method与computed的区别,在此我想先来看看computed属性在vue官网中的说法:模板内的表达式是非常便利的,但是它们实际上只用于简单的运算。在模板中放入太多的逻辑会让模板过重且难以维护。

我们来看一个例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="javascript/vue.min.js"></script>
</head>
<body>
<div id="app">
//直接在模板中绑定表达式
<p>{{message.split('').reverse().join('')}}</p>
//运用计算属性
<p>message反转之后的结果:{{reverseMessage}}</p>
</div>
<script>
var vm=new Vue({
el:"#app",
data:{
message:"hello"
},
computed:{
reverseMessage:function(){
return this.message.split('').reverse().join('');
}
}
})
</script>
</body>
</html>

在上面这种情况下,模板不再简单和清晰。在意识到这是反向显示 message 之前,你不得不再次确认第二遍。当你想要在模板中多次反向显示 message 的时候,问题会变得更糟糕。这就是对于任何复杂逻辑,你都应当使用计算属性的原因。下面我将运用method与computed进行比较:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="javascript/vue.min.js"></script>
</head>
<body>
<div id="app">
<p>{{message}}</p>
//直接在模板中绑定表达式
<p>{{message.split('').reverse().join('')}}</p>
//运用计算属性
<p>{{reverseMessage}}</p>
//运用methods方式
<p>{{methodMessage()}}</p>
</div>
<script>
var vm=new Vue({
el:"#app",
data:{
message:"hello"
},
computed:{
reverseMessage:function(){
return this.message.split('').reverse().join('');
}
},
methods:{
methodMessage:function () {
return this.message.split('').reverse().join('');
}
}
})
</script>
</body>
</html>

我在将这二种方式进行了比较。返回的结果是一样的,写但在法上computed计算属性的方式在用属性时不用加(),而methods方式在使用时要像方法一样去用,必须加().

两种方式在缓存上也大有不同,利用computed计算属性是将 reverseMessage与message绑定,只有当message发生变化时才会触发reverseMessage,而methods方式是每次进入页面都要执行该方法,但是在利用实时信息时,比如显示当前进入页面的时间,必须用methods方式。

总结

以上所述是小编给大家介绍的Vue中method与computed的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript抖动元素的小例子
Oct 28 Javascript
JS图片无缝、平滑滚动代码
Mar 11 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
JavaScript 作用域链解析
Nov 13 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
vue实现简单loading进度条
Jun 06 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
浅谈Koa2框架利用CORS完成跨域ajax请求
Mar 06 #Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 #Javascript
JavaScript基础心法 数据类型
Mar 05 #Javascript
js获取html页面代码中图片地址的实现代码
Mar 05 #Javascript
vue axios 在页面切换时中断请求方法 ajax
Mar 05 #Javascript
node.js通过axios实现网络请求的方法
Mar 05 #Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 #Javascript
You might like
几个学习PHP的网址
2006/11/25 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
python flask安装和命令详解
2019/04/02 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
python实现滑雪游戏
2020/02/22 Python
django 取消csrf限制的实例
2020/03/13 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
keras中的History对象用法
2020/06/19 Python
什么是抽象
2015/12/13 面试题
大学生村官典型材料
2014/01/12 职场文书
班班通项目实施方案
2014/02/25 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL