//计算属性是根据data中已有的属性,计算得到一个新的属性,
<div>全名:{{fullName}}</div>
创建计算属性通过computed关键字,它是一个对象
计算属性是基于他们的依赖进行缓存的,computed是对data中的一些数据进行操作,避免在标签中进行操作,
computed:{
fullName(){
return this.firstName+lastName
}
} 此时的fullName为一个自定义的名称,代表了一个计算的封装函数,此时代表了两个字符串的拼接和,
而不是直接在页面上进行计算,计算属性就起到了这个作用。
  watch 监听属性
watch属性和computed属性类似,是为了监听data中的数据的变化,只要监听的数据一发生变化,它就能执行相应的函数, watch属性的名字必须为data中对应数据的名字 data中有firstName="" lastName="" watchFullName=""
参数newVal 和oldVal分别是新值和旧值
watch:{
firstName(newVal,oldVal){
this.watchFullName=newVal+this.lastName
}
lasttName(newVal,oldVal){
this.watchFullName=this.firstName+oldVal
}
} 下面这一段是对路由参数的监听,这是一个组件,watch可以实时的获取到参数的值。
 var shop=Vue.component('shop',{
template:`
<div>要显示的商品编号{{$route.params.id}}</div>
`,
// mounted(){
// console.log(this.$route.params)
// },
// 通过监听来实现动态获取路由参数
watch:{
$route(to,from){
console.log(to.params)
console.log(from.params)
}
}
})

computed 和watch对比来看的话虽然都能实现相同的功能,但是在一些相类似的应用场景中,一般都用computed 因为computed(计算属性)有一个缓存机制,如果后来的代码依赖于计算属性所得出的值,那么后来的计算值将会取自第一次计算所得值的缓存,这样就避免了一个值多次进行计算,影响代码的执行效率,

watch 的应用场景为一些异步的操作。

 深度监听
深度监听是为了监听对象中的数据变化
data:{
user{
name:"zhangsan"
}
} user:{
handler(newVal,oldVal){
console.log(newVal.name)
//这样就可以打印一个新的user对象中的name值
},
deep:true
}

vue中的computed(计算属性)和watch(监听属性)的特点,以及深度监听的更多相关文章

  1. vue中为computed计算属性传参遇到的问题,已解决

    首先介绍下项目背景, 需要将 dataList 中的 item.stars 属性传入 computed 返回要展示的值 部分代码如下(请不要纠结为什么这么做,数据格式确认如此): <li cla ...

  2. Vue中的computed属性

    阅读Vue官网的过程中,对于计算属于与监听器章节的内容有点理解的不清晰:https://cn.vuejs.org/v2/guide/computed.html. 后来上网查询了资料,结合官网的说明,总 ...

  3. 八、Vue中的computed属性

    看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲聊起来,对computed这个属性才有了一个稍微比较清晰的认识,下面的文章有一部分是转自: https: ...

  4. 十三、Vue中的computed属性

    以下抄自https://www.cnblogs.com/gunelark/p/8492468.html 看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲 ...

  5. vue中methods,computed,filters,watch的总结

    08.28自我总结 vue中methods,computed,filters,watch的总结 一.methods methods属性里面的方法会在数据发生变化的时候你,只要引用了此里面分方法,方法就 ...

  6. vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)

    _ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...

  7. Vue中的computed和watch

    看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲聊起来,对computed这个属性才有了一个稍微比较清晰的认识,下面的文章有一部分是转自: https: ...

  8. 详解Vue中的computed和watch

    作者:小土豆 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.cn/user/2436173500265335 1. 前言 作为一名Vue ...

  9. Vue 中的 computed 和 methods

    Vue 中的 computed 和 methods 使用 computed 性能会更好. 如果你不希望缓存,可以使用 methods 属性.

  10. vue中的computed 与 watch

    计算属性 computed 指通过计算得来的属性,用于监听属性的变化 computed里面的函数调用的时候 不需要加() 方法里必须有一个返回值 return computed中的函数不会通过事件去触 ...

随机推荐

  1. Spring MVC(四)文件上传

    文件上传步骤 1.写一个文件上传的页面 2.写一个文件上传的控制器 注意: 1.method="post" 2.enctype="multipart/form-data& ...

  2. Python 强制停止多线程运行

    强制停止多线程运行 by:授客 QQ:1033553122 #!/usr/bin/env python # -*- coding:utf-8 -*-     __author__ = 'shouke' ...

  3. SlidingMenu的使用详解

    前言- 最近自己在做一个Android的程序,需要用到一个侧滑的菜单,发现了SlidingMenu这个开源项目.简单实用,但是实战的时候遇到了许多小问题,今天来记录一下. SlidingMenu的使用 ...

  4. MIUI12系统怎么样开启Root超级权限的流程

    MIUI12系统能有啥方法开启root超级权限?各位都清楚,Android机器有root超级权限,如果手机开启root相关权限,可以实现更好的功能,举例子,各位公司的营销部门,使用某些营销软件都需要在 ...

  5. 记一次 c 语言 的 多线程查找 简单实现

    //仅供参考学习 1 #define _CRT_SECURE_NO_WARNINGS //屏蔽 vs 的a #include <stdio.h> #include <stdlib.h ...

  6. Oracl 一条sql语句 批量添加、修改数据

    最近一直在用,也一直在学oralc,项目上也用到了批量的添加(读取上传CSV文件信息,把符合条件的信息写入到数据库中),在写的时候想到了可能是数据量大就想该怎么快,(由于本人在.NET开发期间没有做过 ...

  7. JS的正则表达式及回文

    function palindrome(str) { str = str.replace(/\s/g,"").replace(/[^a-zA-Z0-9]/g,"" ...

  8. mysql之limit使用

    在mysql中,limit的使用方式如下: limit m,n --m:表示从哪一行开始查,n:查询多少条 需要明确的是,m表示取条数的起始位置,而n表示取多少条.例如我查询某个表,获取第一条数据,那 ...

  9. Scrapy框架-Spider

    目录 1. Spider 2.Scrapy源代码 2.1. Scrapy主要属性和方法 3.parse()方法的工作机制 1. Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取 ...

  10. 关于spring boot中 EmbeddedServletContainerCustomizer

    EmbeddedServletContainerCustomizer这个在spring boot2.X的版本中就不再提供支持了貌似2.0版本还能用 ,用来提供对异常的处理.在支持EmbeddedSer ...