浅析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 相关文章推荐
HTML TO JavaScript 转换
Jun 26 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
javascript学习笔记之10个原生技巧
May 21 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
JScript中的条件注释详解
Apr 24 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
Nov 01 Javascript
JavaScript随机数的组合问题案例分析
May 16 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
桌面中心(四)数据显示
2006/10/09 PHP
Session的工作方式
2006/10/09 PHP
php 无限分类的树类代码
2009/12/03 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP实现的简单缓存类
2015/07/29 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
python实现证件照换底功能
2019/08/20 Python
PHP统计代码行数的小代码
2019/09/19 Python
Python中实现输入一个整数的案例
2020/05/03 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
大学生就业自荐信
2013/10/26 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
初中班主任寄语
2014/04/04 职场文书
离婚被告代理词
2015/05/23 职场文书
公司备用金管理制度
2015/08/04 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js