Vue基础进阶 之 计算属性的使用
计算属性的基本使用
初始小示例:

代码:
window.onload = () =>{
new Vue({
el:'div',
data:{
msg:''
}
})
}
</script>
</head>
<body>
<div>
<input type="text" v-model="msg"/><br />
原样显示:{{msg}}<br />
大写显示:{{msg.toUpperCase()}}<br />
</div>
直接在HTML中使用toUpperCase()方法,这样使得代码太长,影响代码的逻辑;因此就引入了计算属性的应用
Vue计算属性:
更强大的属性声明方式,可以对定义的属性进行逻辑处理与数据监视;
计算属性的使用;
https://cn.vuejs.org/v2/guide/computed.html#计算属性

计算属性的vue代码:
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
msg:''
},
computed:{
msg1:function(){ return this.msg.toUpperCase();
}
} })
} </script>
html:
<body>
<div>
<input type="text" v-model="msg"/><br />
原样显示:{{msg}}<br />
大写显示:{{msg.toUpperCase()}}<br />
计算属性显示:{{msg1}}<br /> </div>
</body>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算属性的基本使用</title>
<script type="text/javascript" src="../js/vue.js" ></script>
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
msg:''
},
computed:{
msg1:function(){ return this.msg.toUpperCase();
}
} })
} </script>
</head>
<body>
<div>
<input type="text" v-model="msg"/><br />
原样显示:{{msg}}<br />
大写显示:{{msg.toUpperCase()}}<br />
计算属性显示:{{msg1}}<br /> </div>
</body>
</html>
计算属性的基本使用
计算属性的getter和setter

computed:{
num1:function(){
return this.num+;
}
}
因此需要将num1转化为数据类型:

<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
num:
},
computed:{
num1:function(){ return parseInt(this.num) +;
}
} })
} </script>
</head>
<body>
<div>
<input type="text" v-model="num"/><br />
原样显示:{{num}}<br /> 计算属性显示:{{num1}}<br /> </div>
</body>
直接修改num1:

直接修改报错的代码:
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
num:
},
computed:{
num1:function(){ return parseInt(this.num) +;
}
} })
} </script>
</head>
<body>
<div>
<input type="text" v-model="num"/><br />
原样显示:{{num}}<br />
<input type="text" v-model="num1"/><br />
计算属性显示:{{num1}}<br /> </div>
</body>
因此我们可以认为计算属性时默认是隐式的getter方法

定义get与set方法:
computed:{
num1:{
get:function(){
return parseInt(this.num) +;
},
set:function(value){
return this.num=value;
}
}
}
注意:在写显式的set方法时需要给它依赖的属性赋值
HTML:
<div>
<input type="text" v-model="num"/><br />
原样显示:{{num}}<br />
<input type="text" v-model="num1"/><br />
计算属性显示:{{num1}}<br /> </div>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算属性的getter和setter</title>
<script type="text/javascript" src="../js/vue.js" ></script>
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
num:
},
computed:{
// num1:function(){
//
// return parseInt(this.num) +10;
// } num1:{
get:function(){
return parseInt(this.num) +;
},
set:function(value){
return this.num=value; } }
} })
} </script>
</head>
<body>
<div>
<input type="text" v-model="num"/><br />
原样显示:{{num}}<br />
<input type="text" v-model="num1"/><br />
计算属性显示:{{num1}}<br /> </div>
</body>
</html>
计算属性的getter和setter
计算属性与方法的区别
计算属性有缓存机制,方法没有;
只要计算属性内相关依赖的值不发生改变,多次调用计算属性可以从缓存中获取值,不必重复计算;
方法每次调用都要重新执行一遍;
依赖值发生改变时都会发生调用;
示例:
属性与方法都可以将小写变为大写


其vue代码为:
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
msg:''
},
computed:{
msg1:function(){
console.log("$$$$computed"); return this.msg.toUpperCase();
}
},
methods:{ upperCase(){
console.log('####methods');
return this.msg.toUpperCase(); },
show(){
console.log("计算属性"+this.msg);
console.log("方法的调用"+this.upperCase());
} } })
} </script>
html:
<body>
<div>
<input type="text" v-model="msg"/><br />
原样显示:{{msg}}<br /> 计算属性显示:{{msg1}}<br />
方法显示:{{upperCase()}}<br />
<button @click="show">show</button> </div>
</body>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算属性与方法的区别</title>
<script type="text/javascript" src="../js/vue.js" ></script>
<script>
window.onload = () =>{ new Vue({
el:'div',
data:{
msg:''
},
computed:{
msg1:function(){
console.log("$$$$computed"); return this.msg.toUpperCase();
}
},
methods:{ upperCase(){
console.log('####methods');
return this.msg.toUpperCase(); },
show(){
console.log("计算属性"+this.msg);
console.log("方法的调用"+this.upperCase());
} } })
} </script>
</head>
<body>
<div>
<input type="text" v-model="msg"/><br />
原样显示:{{msg}}<br /> 计算属性显示:{{msg1}}<br />
方法显示:{{upperCase()}}<br />
<button @click="show">show</button> </div>
</body>
</html>
计算属性与方法的区别
Vue基础进阶 之 计算属性的使用的更多相关文章
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch
回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...
- Vue基础练习之计算属性、方法、监听器
<body> <div id="root"> {{fullName()}} {{age}} </div> <script> var ...
- vue.js初探:计算属性和methods
在vue.js中,计算属性和methods方法的函数相同时,两者的最终执行结果都是相同的.然而不同的是,计算属性是基于它的依赖缓存.计算属性只有在它的相关依赖发生改变时才会重新取值.这就意味着只要 m ...
- vue从入门到进阶:计算属性computed与侦听器watch(三)
计算属性computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example" ...
- Vue基础进阶 之 常用的实例属性
Vue实例属性: vue实例直接调用的属性: 常用的实例属性: vm.$data:获取属性: vm.$el:获取实例挂载的元素: vm.$options:获取自定义选项/属性: vm.$refs:获取 ...
- Vue.js学习 Item5 -- 计算属性computed与$watch
在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需 ...
- vue 自学笔记(三) 计算属性与侦听器
一:计算属性 虽然在模板内使用表达式对属性进行处理十分便利,例如在小胡子语法里写number + 1实现对数据的简单处理,但若我们在其中加入大量的代码,使得逻辑变重,导致难以维护.例如下面的代码,并不 ...
- Vue.js系列之四计算属性和观察者
一.计算属性 1.模版内的表达式非常便利,但是设计它们的初衷是用于简单计算的.在模版中放入太多的逻辑运算会让模版过重且难以维护,例如如下代码: <div id="example&quo ...
- Vue基础知识之常用属性和事件修饰符(二)
Vue中的常用选项 1.计算属性 computed为可以计算的属性,由get方法和set方法组成,默认调用的是get方法.里面的 计算属性简单来说,就是根据数据推算出来的值,当给这个值赋值时可以影响其 ...
随机推荐
- Java编写email实现内容换行
用java编写的发送邮件要使用<br>来实现换行,而不能使用\n,或者\r\n // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发 ...
- iOS 正则表达式(一)
在iOS开发中,正则一直是最常用的,但也是一直记不住的,现在做一些简单的总结 我们在网上找的正则,要有'\',这个在iOS是转义符,需要'\\'这样 int main(int argc, const ...
- ruby自动化之selenium webGUI
1.下载ruby语言包,windows下需要安装rubyinstall http://railsinstaller.org/en 2.cmd命令下安装selenium-webdriver gem包 g ...
- 转自大神的KM想法
我第一次理解KM算法看到大神的讲解不胜感激这km挺神奇的接下来就见识一下这个大牛的吧 转自 http://blog.csdn.net/wuxinxiaohuangdou/article/details ...
- django migrate无效的解决方法
遇到一个很奇怪的问题 python manage.py makemigrations 的时候显示要创建两张表,但是执行 python manage.py migrate 的时候不能识别,也就是说失效了 ...
- 关于在搜索栏的一些小bug
问题:我们在使用input标签和button按钮写搜索框的时候,书写在两行的时候会有缝隙,其次,input标签如果用大的div括起来,里面依然会显示边框. 解决方法:1.关于input标签,我们将属性 ...
- 安卓apk的编译与反编译
原文:https://blog.csdn.net/baidu_33870664/article/details/80186945 android基于java的,而java反编译工具很强悍,所以对正常a ...
- javascript实现异步编程的4种方法
1.回调函数. 2.事件监听 . 思路:采用事件驱动模式.任务的执行不取决于代码的顺序,而取决于某个事件是否发生 3.观察者模式 (发布/订阅模式) 代码如下: jQuery.subscribe ...
- PyCharm2017破解步骤
前段时间买了一套python的学习视频,附带一个Pycharm的安装包和注册码,现在注册码被JetBrains封杀了,不得已在网上找了一下破解的教程,在这里记录一下: 先找到破解补丁无需使用注册码,下 ...
- javascript常用积累
一.JS动画与动作不一致解决: if(!$( "#handle").is(":animated")){ //判断元素是否处于动画状态 } 二.停止事件冒泡 ev ...