类型:{ [key: string]: Function | { get: Function, set: Function } }

  计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的。

  computed用来监控自己定义的变量,有data、props中的数据,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行展示出结果或者用作其他处理;

  computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化,举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。这里的这个总金额使用computed属性来进行计算是最好的选择

<template>
<div>
<ul>
<li v-for="item in list" :key='item.name'>
<span>{{item.name}}</span>
<input type="text" v-model="item.age">
</li>
<li>
<span>总数</span>
<span>{{totalAge}}</span>
</li>
</ul>
<ul>
<li>
<input type="text" v-model="setName">
<input type="button" value="提交" @click="setFullName">
</li>
<li>
<span>firstName</span>
<input type="text" v-model="firstName">
</li>
<li>
<span>lastName</span>
<input type="text" v-model="lastName">
</li>
<li>
<span>fullName</span>
<span>{{fullName}}</span> <!-- 不建议使用v-model来改变fullName的值,会出现问题,本来computed就是计算的意思 -->
<!-- <input type="text" v-model="lastName"> -->
</li>
</ul>
</div>
</template> <script>
export default {
data() {
return {
list: [
{
name: 'nike',
age:
},
{
name: 'adidias',
age:
},
{
name: 'lining',
age:
}
],
firstName: '',
lastName: '',
setName: ''
}
},
methods:{
setFullName(){
this.fullName = this.setName;//通过函数设置fullName,不建议v-model来设置fullName
}
},
computed:{
// 仅读取
totalAge(){
let total =
let me = this
for (let i = ; i < me.list.length; i++) {
total += parseInt(me.list[i].age)
}
return total
},
// 读取和设置
fullName: { //
//读取
get(){ //回调函数 当需要读取当前属性值是执行,根据相关数据计算并返回当前属性的值
return this.firstName + ' : ' + this.lastName;
},
//设置
set(val){ //监视当前属性值的变化,当属性值发生变化时执行,更新相关的属性数据
//val就是fullName的最新属性值
console.log(val)
const names = val.split(' ');
console.log(names)
this.firstName = names[];
this.lastName = names[names.length-];
}
}
}
}
</script>
<style>
ul{
width: 400px;
margin: auto;
}
li{
width: %;
overflow: hidden;
margin-bottom: 10px;
}
span{
float: left;
margin: 5px;
padding: 0px 20px;
width: 100px;
text-align: right;
}
li span:nth-child(){
text-align: center;
}
input{
height: 20px;
}
</style>

vue 的计算属性computed自我理解的更多相关文章

  1. Vue.js 计算属性(computed)

    Vue.js 计算属性(computed) 如果在模板中使用一些复杂的表达式,会让模板显得过于繁重,且后期难以维护.对此,vue.js 提供了计算属性(computed),你可以把这些复杂的表达式写到 ...

  2. vue的计算属性computed和监听器watch

    <template> <div> this is A.vue <br> <!--计算属性--> <label for="msg" ...

  3. Vue之计算属性Computed和属性监听Watch,Computed和Watch的区别

    一. 计算属性(computed) 1.计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷. 例如: <div id="app"> {{ myname ...

  4. 浅谈Vue中计算属性computed的实现原理

    虽然目前的技术栈已由Vue转到了React,但从之前使用Vue开发的多个项目实际经历来看还是非常愉悦的,Vue文档清晰规范,api设计简洁高效,对前端开发人员友好,上手快,甚至个人认为在很多场景使用V ...

  5. vue中计算属性computed方法内传参

    vue中computed计算属性无法直接进行传参 如果有传参数的需求比如说做数据筛选功能可以使用闭包函数(也叫匿名函数)实现 例如: 在上篇博客vue安装使用最后的成绩表练习中的过滤功能的实现: &l ...

  6. Vue.js 计算属性computed和methods的区别

    在vue.js中,有methods和computed两种方式来动态当作方法来用的 如下: 两种方式在这种情况下的结果是一样的 写法上的区别是computed计算属性的方式在用属性时不用加(),而met ...

  7. 怎样理解 Vue 中的计算属性 computed 和 methods ?

    需求: 在 Vue 中, 我们可以像下面这样通过在 引号 或 双花括号 内写 js 表达式去做一些简单运算, 这是可以的, 不过这样写是不直观的, 而且在 html 中 夹杂 一些运算逻辑这种做法其实 ...

  8. 浅谈Vue中计算属性(computed)和方法(methods)的差别

    浅谈Vue中计算属性(computed)和方法(methods)的差别 源码地址 methods方法和computed计算属性,两种方式的最终结果确实是完全相同 计算属性是基于它们的响应式依赖进行缓存 ...

  9. Vue学习3:计算属性computed与监听器

    下面是计算属性相关代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

随机推荐

  1. Linux 下安装Yaf扩展

    1.在官网下载了yaf扩展包 yaf-3.0.3.tgz 2.开始安装yaf扩展 tar zxvf yaf-3.0.3.tgz cd yaf-3.0.3 phpize ./configure --wi ...

  2. 策略与计费控制规则(Policy and Charging Control Rule-PCC Rule)解析及模板样例

    内容 PCC规则定义 PCC规则运行 PCC规则模板 PCC规则定义 参考文档: 3gpp ts 23.203-be0 条款6.3 策略与计费控制规则(PCC Rule),即一系列相关信息与一系列相关 ...

  3. LIS问题---HDU1025 Constructing Roads In JGShining's Kingdom

    发现这个说的比较通俗: 假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5.下面一步一步试着找出它.我们定义一个序列B,然后令 i = 1 to 9 ...

  4. java的多线程安全,ReentrantLock与synchronized锁

    前言 多线程总的来说是一个很大的模块,所以虽然之前就想写但一直感觉有地方没有理解透,在经过了一段时间学习后,终于有点感觉了,在此写下随笔. 多线程安全问题##: 首先和大家讨论一下多线程为什么会不安全 ...

  5. WPF 控件库——仿制Chrome的ColorPicker

    WPF 控件库系列博文地址: WPF 控件库——仿制Chrome的ColorPicker WPF 控件库——仿制Windows10的进度条 WPF 控件库——轮播控件 WPF 控件库——带有惯性的Sc ...

  6. C# 微信openid 用户信息

    前段demo index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  7. asp.net core 外部认证多站点模式实现

    PS:之前因为需要扩展了微信和QQ的认证,使得网站是可以使用QQ和微信直接登录.github 传送门 .然后有小伙伴问,能否让这个配置信息(appid, appsecret)按需改变,而不是在 Con ...

  8. 一套最全的JavaScript 语言基础知识点总结(思维导图10张)

    1.DOM基础操作 2.数组基础 3.函数基础 4.运算符 5.流程控制语句 6.正则表达式 7.字符串函数 8.数据类型 9.变量 10.window对象

  9. VS Code基本使用

    1. Activity Bar 1.1 Explorer 1.1.1. OPEN EDITORS 所有在右侧编辑区打开的文件列表 1.1.2 {PROJECTNAME} 某个文件夹下的文件树 1.2 ...

  10. linux 虚拟机 安装 php-7.0.2

    1.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel libjpeg libjpeg-devel libpng libp ...