今天看到一个问题,就是vue的computed和watch要在哪些场景下使用,其实也就是在问他们的区别。computed也就是计算属性,它可以帮助我们将在模板中的一些稍微复杂的逻辑计算放回到js代码中,方便理解与修改维护;就拿官网给的例子,如下代码片段。

<div id="example">
{{ message.split('').reverse().join('') + number }}
</div>

这js片段虽然看起来挺简单的,但是,如果以后多了需求,要做多一两步的逻辑,在模板里面维护起来就麻烦了,所以类似这种的,我们将其写到computed计算属性里面。也就是下面这样子,这样子看起来美观,一看就清楚这是干啥用的

<template>
<div>
<p>{{ reversedMessage }}</p>
</div>
</template> <script>
export default {
name: 'test1',
data () {
return {
message: 'hello world',
number: 1
}
},
computed: {
// 字符串反转
reversedMessage () {
return this.message.split('').reverse().join('') + this.number
}
}
}
</script>

在computed中定义的每一个计算属性,都会被缓存起来,只有当计算属性里面依赖的一个或多个属性变化了,才会重新计算当前计算属性的值。上面的代码片段中,在reversedMessage中,它依赖了message和number这两个属性,一旦其中一个变化了,reversedMessage会立刻重新计算输出新值。

watch是属性监听器,一般用来监听属性的变化(也可以用来监听计算属性函数),并做一些逻辑。在这里就稍微说下他监听属性的功能吧。

<template>
<div>
<p>{{ this.number }}</p>
</div>
</template> <script>
export default {
name: 'test1',
data () {
return {
number: 1
}
},
created () {
setTimeout(() => {
this.number = 100
}, 2000)
},
watch: {
number (newVal, oldVal) {
console.log('number has changed: ', newVal)
}
}
}
</script>

上面的代码中,我们在watch中监听了number属性,并且在实例创建后2s执行对number属性的值的更改。我们可以在控制台中看到2s后打印了如下图:

就我自己目前来说,watch一般就用来一个数据来影响多个数据的操作,或者比如说是用来监听input然后进行一些即时搜索操作什么的。

大概总结一下,computed和watch的使用场景并不一样,computed的话是通过几个数据的变化,来影响一个数据,而watch,则是可以一个数据的变化,去影响多个数据。

vue中 computed和watch的一些简单理解(区别)的更多相关文章

  1. vue中computed和watch的写法,以及区别

    <template> <div class="print"> <div style="color: red"> <p ...

  2. Vue中computed的本质及与methods的区别

    一.computed的本质? computed为什么不像methods一样加小括号使用? 正常使用computed方式 运行结果 至于为什么computed为什么不像methods一样使用小括号调用, ...

  3. vue中computed(计算属性)和watch在实现父子组件props同步时的实际区分

    vue中computed和watch的对比是一个很有意思的话题. 看过官网教程以后,我们往往更倾向多使用computed.computed优点很多,却在某些时候不太适用. 今天我们就稍微讨论一下,当我 ...

  4. Vue中computed分析

    Vue中computed分析 在Vue中computed是计算属性,其会根据所依赖的数据动态显示新的计算结果,虽然使用{{}}模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的,在模板中放入太 ...

  5. Vue中computed和watch的区别

    在vue中computed和watch的真正区别是:computed产生于它的依赖,而watch产生于它的依赖的变化.只要依赖存在,我们就能访问到其对应的computed属性:但只有依赖发生了改变,我 ...

  6. vue中computed的作用以及用法

    在vue中computed是计算属性,主要作用是把数据存储到内存中,减少不必要的请求,还可以利用computed给子组件的data赋值. 参考地址:https://www.jianshu.com/p/ ...

  7. vue中的项目目录assets和staitc的区别

    vue中的项目目录assets和staitc的区别 在进行发行正式版时,即为npm run build编译后, assets下的文件如(js.css)都会在dist文件夹下面的项目目录分别合并到一个文 ...

  8. vue中computed与watch的异同

    一.computed 和 watch   都可以观察页面的数据变化.当处理页面的数据变化时,我们有时候很容易滥用watch. 而通常更好的办法是使用computed属性,而不是命令是的watch回调. ...

  9. Vue中computed,methods 和watch

    Vue中的计算属性和方法属性 1.计算属性 computed 模版中可以使用表达式 <div id="example"> {{ message.split('').re ...

  10. vue中引入mintui、vux重构简单的APP项目

    最近在学习vue时也了解到一些常用的UI组件,有用于PC的和用于移动端的.用于PC的有:Element(饿了么).iView等:用于移动端APP的有Vux.Mint UI(饿了么).Vant(有赞团队 ...

随机推荐

  1. CGTime CMTimeRange CMTimeMapping 小结

    CMTime CMTimeRange CMTimeMapping 在使用 AVFoundation 框架处理多媒体资源时,通常会用到一些在 CoreMedia 框架中定义的结构体, 这里对其中描述时间 ...

  2. 收集的sql经典语句

    经典SQL语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serve ...

  3. C++中,get getline gets 用法

    1.cin 2.cin.get() 3.cin.getline() 4.getline() 5.gets() 6.getchar() 1.cin>> 用法1:最基本,也是最常用的用法,输入 ...

  4. kubernetes系列—Ubuntu下搭建Kubernetes集群--k8s部署

    1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 2.安装kubernetes 2.1  关闭防火墙 在每台机器上关闭防火墙: ① 关闭服务,并设为开机不自启 $ ...

  5. node后台项目所需中间件梳理

    0.nodemon 全局工具,监听项目文件变动,并自动重启项目 一.node内置模块 1.fs fs.readFile()  读取指定文件中的内容fs.writeFile()  向指定的文件中写入内容 ...

  6. 在gibhub上传本地项目代码(新手入门)

    一.首先注册github账号 地址:https://github.com/ 二.其次下载安装git工具 地址:https://gitforwindows.org/ 直接进入安装,这里就不多做介绍 三. ...

  7. APIView使用

    1 CBV源码分析 # 基于类的视图--->讲过了 -必须要继承它:from django.views import View  # drf的东西,都是写cbv,必须要继承View​​##### ...

  8. SqlServer 不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。

    SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题. 但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某 ...

  9. idea的tomcat控制台输出乱码

    tomcat乱码问题 idea的tomcat控制台输出乱码 找到自己的安装目录 用vscode打开 ctrl+f打开搜索 输入encoding 最后一个是用来给idea中的控制台输出 --->改 ...

  10. Spyglass CDC工具使用(二)

    最近一直在搞CDC (clock domain crossing) 方面的事情,现在就CDC的一些知识点进行总结. 做CDC检查使用的是Spyglass工具.以下内容转载自:Spyglass检查之CD ...