概念理解

类型

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

详细

属性将被混入到 Vue 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例。

注意如果你为一个计算属性使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。

例子

computed: {aDouble: vm => vm.a * 2
}
computed: {
 get(){return this.xxxx;
    }

}computed: {value: {get(){return this.xxxx;     },set(val){this.$emit()
        }}
 

}

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

注意点一

computed中定义的一个变量没有在相关属性发生变化后触发更新。

例子如下

当调用changeAge设置person年龄之后,调用this.personAge 发现personAge值为undefined,

person 中 的age 并不是响应是的,

data(){return {person:{name:"小虽"}}
}computed:{personAge(){return this.person.age;}
}method:{changeAge(){this.person.age = 24;}
}

修改

data(){return {person:{name:"小虽",age: 0}}
}computed:{personAge(){return this.person.age;}
}method:{changeAge(){this.person.age = 24;}
}

注意点二

局部变量:在获取值的时候尽量设置参数,

// 优化computed: {res({ start, count}) { return start + count;}}// 无优化computed: {res() { return this.start + this.count;}}

计算前先用局部变量 start, count,缓存起来,后面直接访问。
优化前后的组件的计算属性 res 的实现差异,优化前的组件多次在计算过程中访问this.{ start, count}

原因是你每次访问 this.xx 的时候,由于 this.{ start, count}是一个响应式,会触发getter,进而会执行依赖收集相关逻辑代码。这也算是性能优化技巧吧,在this.xxx 访问次数比较多的时候。

vue computed相关推荐

  1. Vue computed带参数

    Vue computed带参数 一般情况下,我们在Vue中使用computed计算属性是无法直接进行传参的. 方法:如果有传参数的需求可以通过闭包函数(也叫匿名函数)来实现. 例如需要通过数据的大小, ...

  2. vue computed 使用小问题

    这个是一个vue 中 computed 的一个小问题 解决方案是通过提issue 解决的,issue链接 Vue.js version 1.0.26 实例 jsfiddle 代码部分 <div ...

  3. vue computed 源码分析

    我们来看看computed的实现.最简单的一个demo如下: <html> <head><meta http-equiv="Content-Type" ...

  4. vue computed使用_vue computed正确使用方式

    最近面试中,遇到一个小伙子,谈到了vue中的 computed 和 watch 区别,最后得到了一个让我瞠目结舌的答案,只用 watch,从不用 computed 模板内的表达式非常便利,但是设计它们 ...

  5. 深入理解 Vue Computed 计算属性

    Computed 计算属性是 Vue 中常用的一个功能,我们今天来说一下他的执行过长 拿官网简单的例子来看一下: <div id="example"><p> ...

  6. Vue computed参数与各生命周期关系(主要是异步的时候)

    前面聊了vue生命周期与路由的先后顺序,现在聊聊computed与各生命周期.先聊一下需求背景,我在做一个图表的时候遇到了,我将图表样式封装为一个组件,然后各个地方需要的时候将数据通过props传入到 ...

  7. vue computed 中操作DOM和给对象添加属性遇到的问题

    这两天使用vue做东西遇到一些问题,今天总结记录一下: 在computed中没法操作dom元素,比如 computed: {w() {return this.$refs.box.offsetWidth ...

  8. [Vue] Computed property XXX was assigned to but it has no setter.

    项目过程中经常遇到如下问题: [Vue warn]: Computed property "CurrentStep" was assigned to but it has no s ...

  9. vue computed使用_前端发展方向指南—Vue运行机制

    点击上方蓝色字关注我们~01前言随着这几年前端的快速发展,页面中需要实现的功能越来越复杂,DOM操作频繁,使用传统的jQuery库去频繁操作DOM时不仅消耗性能,而且各种DOM绑定后期维护时简直是一场 ...

  10. Vue computed自动计算对象中的属性

    需求 总建筑面积 = 地上总建筑面积 + 地下总建筑面积 总建筑面积禁止用户输入,而由用户输入的 "地上总建筑面积" 和 "地下总建筑面积"  自动求和得到 实 ...

最新文章

  1. pythonbool运算教学_python,_pandas Series bool与运算,python - phpStudy
  2. 记录下,我们平时开发当中不得不知道的HTTP状态码
  3. 【 Notes 】Positioning system classification
  4. BZOJ.3218.a + b Problem(最小割ISAP 可持久化线段树优化建图)
  5. boost::multi_array模块实现在矩阵上测试切片
  6. C++ 值传递、指针传递、引用传递
  7. C语言结构体实现类似C++的构造函数
  8. 学python第二天_学习Python的第二天
  9. git push命令_Git Push命令解释
  10. iis的web站点配置
  11. js中style.display=无效的解决方法
  12. mongoDB的基本使用----飞天博客
  13. paip.python错误解决4
  14. Android商业模式
  15. 中小型企业应该选择什么样的OA系统?
  16. 音乐推荐-3张新碟《雪狼》+《馨馨醉》+《光》
  17. classpath、path、JAVA_HOME的作用及JAVA环境变量配置 (转)
  18. CommandLineRunner和ApplicationRunner区别
  19. 如何用python写一个接口
  20. 黑客攻防技术宝典(十二)

热门文章

  1. Ubuntu的终端重启命令
  2. oneforall子域名收集工具使用
  3. 如何查看Linux的java版本,查看linux的java版本信息
  4. 教您使用IntelliJ IDEA键盘快捷键~
  5. leftjoin/innerjoin以后数据条数比原数据表多的原因及解决办法
  6. 美图秀秀首页界面设计(一)
  7. java中hashCode方法与equals方法的用法
  8. C语言中如何输出双引号
  9. 网络编程——TCP网络编程UDP编程
  10. 唞音最新无人直播技巧系统