vue---computed计算属性的使用
一直以来在使用vue的时候,会对vue的computed属性和watch属性具体的使用分不清楚,总算花点时间整理了下。
computed:通常用于监控自己定义的变量,这个变量可以不再data中定义,直接在computed里面定义,然后可以在页面上做双向数据绑定得到这个数据。通常的使用场景:添加商品到购物车,商品数量和总金额会发生变化,如果用watch来做监听就会比较麻烦,使用computed来做监听是最好的选择。
watch:通常用于监听data里面定义好的变量。通常用于 model 做双向数据绑定的监听,可以监听变量,也可以监听一个对象,但是我们不能这样来监听。
watch:{
goodsList.price(newVal,oldVal){
//监控商品列表中是商品价格
}
}
这样监听会报错。
详细说下计算属性:
计算属性可用于快速计算视图(View)中显示的属性。这些计算将被缓存,并且只在需要时更新。
在Vue中有多种方法为视图设置值:
使用指令直接将数据值绑定到视图
使用简单的表达式对内容进行简单的转换
使用过滤器对内容进行简单的转换
除此之外,我们还可以使用计算属性根据数据模型中的值或一组值来计算显示值。
举个简单的例子:
<template>
<div class="app-container">
<span v-text="title"></span>
<ul>
<li v-for="x in results">
{{x.name}}: <input type="text" v-model="x.score">
</li>
</ul>
<p>总分:{{totalMarks}}</p>
</div>
</template> <script>
export default {
data() {
return {
title:'我是一个计算器',
results:[
{name:'English',score:80},
{name:'Math',score:90},
{name:'History',score:70},
]
}
},
methods: {
},
computed:{
totalMarks:function(){
let total = 0;
let self = this;
for(let i = 0; i < self.results.length; ++i){
total += parseInt(self.results[i].score);
};
return total;
}
}
}
</script> <style scoped>
*{margin:0px; padding:0px;}
</style>
除此之外,computed计算属性还提供 get 和 set 方法来使用。
具体参考:https://www.cnblogs.com/gunelark/p/8492468.html
vue---computed计算属性的使用的更多相关文章
- 深入理解 Vue Computed 计算属性
Computed 计算属性是 Vue 中常用的一个功能,我们今天来说一下他的执行过长 拿官网简单的例子来看一下: <div id="example"> <p> ...
- vue computed计算属性 watch监听
计算属性 computed:{ 变量:function(){ return 计算好的值 } } 这时候计算好的值 就付给了你的变量 在实例中可以this.使用 注意 声明的变量的data中不可以重复声 ...
- vue computed计算属性和watch监听属性解疑答惑
computed计算属性 计算属性类似于方法,用于输出data中定义的属性数据的结果,data数据变化时,计算属性的结果会同步变化,需要注意的是计算属性不可与data定义的属性同名. 相比于方 ...
- vue中计算属性computed方法内传参
vue中computed计算属性无法直接进行传参 如果有传参数的需求比如说做数据筛选功能可以使用闭包函数(也叫匿名函数)实现 例如: 在上篇博客vue安装使用最后的成绩表练习中的过滤功能的实现: &l ...
- vue的计算属性computed和监听器watch
<template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ...
- Vue之computed计算属性
demo.html <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/19 ...
- Vue(七):computed计算属性
简介 计算属性关键词: computed. 计算属性在处理一些复杂逻辑时是很有用的. 实例1 可以看下以下反转字符串的例子: <div id="app"> {{ mes ...
- Vue的computed计算属性是如何实现的
一个开始 有如下代码,full是一个计算属性,开始,他的值是'hello world',1s后,msg变成了‘I like’, full的值同步变成了'I like world';其原理解析来看一下. ...
- 043——VUE中组件之使用.sync修饰符与computed计算属性实现购物车原理
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Vue.js 计算属性(computed)
Vue.js 计算属性(computed) 如果在模板中使用一些复杂的表达式,会让模板显得过于繁重,且后期难以维护.对此,vue.js 提供了计算属性(computed),你可以把这些复杂的表达式写到 ...
随机推荐
- all to do list
要做的任务: 1. docker 学习 2. python docker应用 3. python 异步爬虫 4. python 词云 5. Java根据代码自动生成接口文档(Swagger) > ...
- vue定义全局变量
思路 将变量放到 window 对象上面 1.普通 创建 global.js window.a = 1; main.js 中引用 import './global.js' 实际使用 console.l ...
- VBV Rate Control
Part 1 <06/05/07 12:08pm> Manao | he is negating a float by printing it, adding a "-" ...
- Springboot 之 多配置文件
六.Springboot 之 多配置文件 说明:在程序开发过程中可能会有这样的需求:开发和部署的配置信息可能会不同,以传统的方式就是在配置文件里面写好配置,在部署的时候再去修改这些配置,这样肯定会 ...
- golang使用chan注意事项
背景 最近老代码中遇到的一个问题,表现为: goroutine数量在高峰期上涨,上涨后平峰期将不下来.也就是goroutine泄露 使用pprof看,进程堵塞在chan chan的使用经验 在使用ch ...
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error(转)
redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error windows下安装Redis第一次启动报 ...
- Cocoapods pod update执行失败报错CocoaPods was not able to update the `master` repo.2019的解决
很久没动pod,最近更新发现: CocoaPods报CocoaPods was not able to update the `master` repo. If this is an unexpect ...
- C++中的三种继承关系
C++中的三种继承关系 先看类中声明成员时的三种访问权限 public : 可以被任意实体访问 protected : 只允许子类及本类的成员函数访问 private : 只允许本类的成员函数访问 在 ...
- Jexus 5.4.6 on CentOS 6.6
Mono 通过脚本安装 https://github.com/cjy37/linux-asp.net-installScript 版本 3.10 MongoDB 也可通过以上脚本安装 默认端口 270 ...
- .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog
**_ .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog _** 前端框架 superui http://www.supermgr.cn/ 1.组 ...