vue computed

news/2024/7/9 23:55:34 标签: vue, computed

computed 计算属性
1.computed用来监控自己定义的变量,
  该变量不在data里面声明,直接在computed里面定义,
  然后即可在页面上进行双向数据绑定展示出结果或者用作其他处理。
2.computed比较适合对多个变量或者对象进行处理后返回一个结果值,
  也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化。
 
computed的使用场景:
  举例:
    购物车里面的商品列表和总金额之间的关系。
    只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。
    这里的这个总金额使用computed属性来进行计算是最好的选择

computed与watch的区别:
    watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以。
    watch可以监控一个变量,也可以是一个对象,但是不能监控某个变量中的属性的变化
    错误代码实例:
        watch:{
            //监控商品列表中是商品价格是无法做到的
            goodsList.price(newVal,oldVal){
        }
    }
    
    watch一般用于监控路由、input输入框的值特殊处理等等,它比较适合的场景是一个数据影响多个数据
    computed可用于快速计算视图(View)中显示的属性。这些计算将被缓存,并且只在需要时更新。

在Vue中有多种方法为视图设置值:

    使用指令直接将数据值绑定到视图
    使用简单的表达式对内容进行简单的转换
    使用过滤器对内容进行简单的转换

除此之外,还可以使用计算属性根据数据模型中的值或一组值来计算显示值。


computed与method的比较
通过监听input或者某些标签的on-change事件,method能到到与computed相同的效果
但是,在性能消耗上,method会是computed的好几倍。
computed中只需要监听on-change事件中涉及的变量的状态与数值是否发生改变
而method中的方法,在页面刷新或者on-change有状态变更时,便会触发。
在Vue中计算属性是基于它们的依赖进行缓存的,而方法是不会基于它们的依赖进行缓存的。从而使用计算属性要比方法性能更好。

computed 计算属性默认只有getter,不过在需要时你也可以提供一个setter
	示例:
		computed: {
			fullName: {
				get: function () { return this.firstName + '' + this.lastName},
				set: function (newValue) {
						let names = newVal.split(',')
						this.firstName = names[0]
						this.lastName = names[names.length-1]
					}
			}
		}

 


http://www.niftyadmin.cn/n/1162574.html

相关文章

es6 展开运算符

展开运算符与对象展开运算符 展开运算符(spread operator)允许一个表达式在某处展开。 展开运算符在多个参数(用于函数调用)或多个元素(用于数组字面量)或者多个变量(用于解构赋值)的…

vuex状态树state与辅助函数mapState

State 单一状态树 Vuex 用一个对象就包含了全部的应用层级状态。 作为唯一数据源,每个应用将仅仅包含一个 store 实例。 单状态树、模块化、状态、状态变更事件分布 由于 Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性中…

SpringMVC 第二章 RequestMapping

Spring MVC 使用RequestMapping注解为控制器指定可以处理哪些URL请求 在控制器的类型定义及方法定义处都可以进行标注 -类定义处:提供初步的请求映射信息,相对于web应用的根目录 -方法处:提供进一步的细分映射信息,相对于…

vue filters 过滤器

过滤器 Vue.js允许自定义过滤器&#xff0c;可被用于一些常见的文本格式化。 过滤器可以用在两个地方&#xff1a; 双花括号插值和v-bind表达式。 过滤器应该被添加在 JavaScript 表达式的尾部&#xff0c;由“管道”符号指示&#xff1a; 格式&#xff1a; <!-- 在…

vuex getters

Vuex允许在store中定义“getter”&#xff08;可以认为是 store 的计算属性&#xff09;。就像计算属性一样&#xff0c;getter 的返回值会根据它的依赖被缓存起来。且只有当它的依赖值发生了改变才会被重新计算。store 中的getters可以作为公共函数或者公共过滤器使用 实例使…

vuex mutation与mapMutations

Mutation 通俗的理解mutations,里面装着一些改变数据方法的集合&#xff0c; 这是Veux设计很重要的一点&#xff0c;就是把处理数据逻辑方法全部放在mutations里面&#xff0c;使得数据和视图分离。 切记&#xff1a;Vuex中store数据改变的唯一方法就是mutation&#xff01; V…

vue 使用 Clipboard 复制文本到剪切板

安装&#xff1a; npm install clipboard --save引用&#xff1a; import Clipboard from clipboard触发复制事件的dom: <p id"copyObj">复制对象</p> // data-clipboard-text 是放置需要复制的数据 // 引用文本 :data-clipboard-text"引用的文本&q…

SpringMVC 第三章 不同风格的URL

Ant风格的资源地址支持3种匹配符&#xff1a; &#xff1f;&#xff1a;匹配文件名中的一个字符 * &#xff1a;匹配文件名中的任意字符 ** &#xff1a; **匹配多层路径 RequestMapping还支持Ant风格的URL /user/*/createUser: 匹配 /user/aaa/createUser; /…