Vue.js计算机属性computed和methods方法详解


Posted in Javascript onOctober 12, 2019

在使用Vue.js时,会发现调用menthods里的方法也可以与计算机属性起到同样的作用,如:

<div id="app">
 
 <!--利用计算机属性实现逆向文本的效果-->
 <input type="text" v-model="text" property="请输入要逆转的文本/>
 <!--逆转的方法-->
 <h3>计算机属性逆转:{{reversedText}}</h3>
 <!--通过调用methods里的方法也可以与计算机属性起到同样的作用-->
 <!--注意,方法要带'()'-->
 <h3>方法逆转:{{reversedTextM()}}</h3>
 
</div>
<script>
 var app = new Vue({
  el: '#app',
  data: {
  text: '123,456'
  },
  methods: {
  reversedTextM: function () { 
   return this.text.split(',').reverse().join(',');
  },
  },
  computed: {
  reversedText: function () { //翻转文本的方法
   //这里的this指向当前Vue实例
   return this.text.split(',').reverse().join(',');
  }
  }
 });
</script>

在methods里定义了一个方法实现了和计算机属性相同的效果,甚至该方法还可以接受参数,使用起来更灵活,既然使用methods就可以实现,那为什么还需要计算机属性呢?原因就是计算机属性是基于它的依赖缓存的。一个计算机属性所依赖的数据发生变化时,它才会重新赋值,所以text只要不改变,计算机属性也就不会更新,如:

computed: {
 now: function () {
 return Date.now();
 }
}

这里的Date.now()不是响应式依赖,所以计算机属性now不会更新。但是methods则不同,只要重新渲染,它就会被调用,因此函数也会被执行。

总结: 使用计算机属性还是methods取决于你是否需要缓存,当遍历大数组和做大量计算时,应当使用计算机属性,除非你不希望得到缓存。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js继承 Base类的源码解析
Dec 30 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
javascript学习笔记(五)正则表达式
Apr 08 Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
js中的preventDefault与stopPropagation详解
Jan 29 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
vue-router 中router-view不能渲染的解决方法
May 23 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
微信小程序 导入图标实现过程详解
Oct 11 #Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 #Javascript
vue实现点击按钮下载文件功能
Oct 11 #Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 #Javascript
详解vue 自定义组件使用v-model 及探究其中原理
Oct 11 #Javascript
JsonProperty 的使用方法详解
Oct 11 #Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 #Javascript
You might like
浅谈php://filter的妙用
2019/03/05 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
详解python中requirements.txt的一切
2017/03/03 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
趣味体育活动方案
2014/02/08 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
数学教育专业求职信
2014/07/22 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
小学教师党员承诺书
2015/04/27 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
天那边观后感
2015/06/09 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
MySQL Shell的介绍以及安装
2021/04/24 MySQL