Vue.js学习笔记 第六篇 内置属性
computed属性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://unpkg.com/vue"></script>
</head>
<body>
<div id="app-1">
<p>初始字符串:{{ content }}</p>
<p>计算后字符串:{{ reversedContent }}</p>
</div>
<script type="text/javascript">
var vm1 = new Vue({
el: '#app-1',
data: {
content: 'TanSea'
},
computed: {
reversedContent: function() {
return this.content.split('').reverse().join('')
}
}
})
</script>
</body>
</html>
Vue对象实例化时,之前接触过了el、data、methods,这里再介绍一个computed
computed的定义和methods的定义是一样的,但是在理解上可以理解为methods是类的方法,computed是类的属性
但是,computed默认是没有set方法的,我们可以显式的给他定义一个
<div id="app-2">
<p>初始字符串:{{ content }}</p>
<p>计算后字符串:{{ reversedContent }}</p>
</div>
<script type="text/javascript">
var vm2 = new Vue({
el: '#app-2',
data: {
content: 'TanSea'
},
computed: {
reversedContent: {
get: function() {
return this.content.split('').reverse().join('')
},
set: function(newValue) {
this.content = newValue
}
}
}
})
</script>
这时,我们就可以在浏览器的控制台输入vm2.reversedContent = 'Hello, World'给他重新赋值了
在大部分情况下,computed和methods是可以互换的,那么他们的区别是什么?
computed 属性会基于它所依赖的数据进行缓存,只有在依赖的数据发生变化时,才会重新取值
methods总是再次执行函数
<div id="app-3">
<p>初始字符串:{{ nowDate }}</p>
<p>methods:{{ mNowDate() }}</p>
<!-- Date.now()是非响应式的依赖数据,computed属性永远不会更新 -->
<p>computed:{{ cNowDate }}</p>
</div>
<script type="text/javascript">
var vm3 = new Vue({
el: '#app-3',
data: {
nowDate: Date.now()
},
methods: {
mNowDate: function() {
return Date.now()
}
},
computed: {
cNowDate: function() {
return Date.now()
}
}
})
</script>
例子使用了Date.now()这种非响应式数据,computed在首次计算完成之后就不再更新
Vue.js学习笔记 第六篇 内置属性的更多相关文章
- Vue.js 学习笔记 第5章 内置指令
本篇目录: 5.1 基本指令 5.2 条件渲染指令 5.3 列表渲染指令 v-for 5.4 方法与事件 5.5 实战:利用计算属性.指令等知识开发购物车 回顾一下第2.2节,我们己经介绍过指令(Di ...
- Vue.js学习笔记 第八篇 组件
全局注册组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- Vue.js学习笔记 第七篇 表单控件绑定
本篇主要说明表单控件的数据绑定,这次没有新的知识点 文本框 1.普通文本框 <div id="app-1"> <p><input v-model=&q ...
- Vue.js学习笔记 第四篇 列表渲染
遍历数组和对象 和条件选择一样,循环也和其他语言类似,也尝试着用一个例子解决问题 <!DOCTYPE html> <html> <head> <meta ch ...
- Vue.js学习笔记 第五篇 事件处理
监听事件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- Vue.js学习笔记 第三篇 条件渲染
条件选择 条件选择的用法和其他语言类似,一个例子就能解决所有问题 <!DOCTYPE html> <html> <head> <meta charset=&q ...
- Vue.js 学习笔记 一
本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请点个赞,或在GitHub上加个星星! https://github.com/zwl-jasmine95/Vue_test 以下所有知 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
随机推荐
- POJ3694-Network(Tarjan缩点+LCA)
题目链接 题意:给你一个连通图.然后再给你n个询问,每一个询问给一个点u,v表示加上u,v之后又多少个桥. 思路:用Tarjan缩点后,形成一棵树,所以树边都是桥了.然后增加边以后,查询LCA,LCA ...
- 没有Promise的时候自己处理复合异步请求
function getList(options){ $.ajax(success:funciton(){ if(options.callback) options.callback.call(); ...
- Shader 优化笔记
如果shader中采了深度图,但是实际上相机没开深度图的话,会严重降帧. 做uv动画时应该 o.uv1.xy = v.uv * _Layer1_ST.xy + frac(_Layer1_ST.zw * ...
- 三个内置模块shutil logging hashlib config
高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 1 import shutil 2 3 shuti ...
- bloom filter + murmurhash
是一种hash方法,其实核心思想就是,将一个字符串通过多个普通hash函数映射到hash表上,然后再进行检索的时候同样计算hash函数,如果全都都hash表上出现过,那么说明有极大的可能出现过,如果没 ...
- poj 3270(置换 循环)
经典的题目,主要还是考思维,之前在想的时候只想到了在一个循环中,每次都用最小的来交换,结果忽略了一种情况,还可以选所有数中最小的来交换一个循环. Cow Sorting Time Limit: 200 ...
- 【BZOJ1930】[Shoi2003]pacman 吃豆豆 最大费用最大流
[BZOJ1930][Shoi2003]pacman 吃豆豆 Description 两个PACMAN吃豆豆.一开始的时候,PACMAN都在坐标原点的左下方,豆豆都在右上方.PACMAN走到豆豆处就会 ...
- Linux 下安装svn
安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 ...
- Xamarin.Forms学习之Page Navigation(一)
在最初接触Xamarin.Forms的时候,我是跟着Xamarin官方的名为“learning-xamarin-ebook”的pdf文档进行学习的,我在成功运行Hello world程序之后,我开始跟 ...
- 64位matlab mex64位编译器解决方案
安装libsvm的时候用到了mex -setup,有的会报 Could not find the 64-bit compiler. This may indicate that the "X ...