浅析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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
js无刷新操作table的行和列
Mar 27 Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 Javascript
原生javascript实现图片滚动、延时加载功能
Jan 12 Javascript
解读Bootstrap v4 sass设计
May 29 Javascript
CentOS环境中MySQL修改root密码方法
Jan 07 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
浅谈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学习笔记(三)操作符与控制结构
2011/08/06 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
php异常处理捕获错误整理
2019/09/23 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
img标签中onerror用法
2009/08/13 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
Python 实现向word(docx)中输出
2020/02/13 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
化学教学随笔感言
2014/02/19 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
逃课检讨书范文
2015/05/06 职场文书
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL