1、computed (计算属性使用)

1. 支持缓存,只有依赖数据发生改变,才会重新进行计算
2. 不支持异步,当computed内有异步操作时无效,无法监听数据的变化
3.computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值
4. 如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed
5.如果computed属性属性值是函数,那么默认会走get方法;函数的返回值就是属性的属性值;在computed中的,属性都有一个get和一个set方法,当数据变化时,调用set方法。
//例如--
<div class="app">
<table border="1">
<thead>
<th>学科</th>
<th>成绩</th>
</thead>
<tbody>
<tr>
<td>数学</td>
<td><input type="text" v-model.number="Math"></td>
</tr>
<tr>
<td>英语</td>
<td><input type="text" v-model.number="English"></td>
</tr>
<tr>
<td>化学</td>
<td><input type="text" v-model.number="chemistry"></td>
</tr>
<tr>
<td>总分</td>
<td>{{sum}}</td>
</tr>
<tr>
<td>平均分</td>
<td>{{average}}</td>
</tr> </tbody>
</table>
</div>
var vm = new Vue({
el:'.app',
data:{
Math:88,
English: 77,
chemistry:99,
},
computed:{
sum:function(){
return this.Math+ this.English+this.chemistry;
},
average:function(){
return Math.round(this.sum/3);
}
}
});

2、watch (监听器使用)

1. 不支持缓存,数据变,直接会触发相应的操作;
2.watch支持异步;
3.监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值;
4. 当一个属性发生变化时,需要执行对应的操作;一对多;
5. 监听数据必须是data中声明过或者父组件传递过来的props中的数据,当数据变化时,触发其他操作,函数有两个参数,
  immediate:组件加载立即触发回调函数执行,
  deep: 深度监听,为了发现对象内部值的变化,复杂类型的数据时使用,例如数组中的对象内容的改变,注意监听数组的变动不需要这么做。注意:deep无法监听到数组的变动和对象的新增,参考vue数组变异,只有以响应式的方式触发才会被监听到。
     data: {
a: 1,
b: {
c: 1
}
},
watch: {
a(val, oldVal) {//普通的watch监听
console.log("a: " + val, oldVal);
},
b: {//深度监听,可监听到对象、数组的变化
handler(val, oldVal) {
console.log("b.c: " + val.c, oldVal.c);
},
deep: true, //true 深度监听
immediate: true //开启首次监听赋值(不开启首次监听不到) }
},

3、computed和watch的区别

当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。这是和computed最大的区别

Vue中computed和watch的使用和区别的更多相关文章

  1. vue中computed、metfods、watch的区别

    一.computed和methods 我们可以将同一函数定义为一个 method 或者一个计算属性.对于最终的结果,两种方式确实是相同的. 不同的是computed计算属性是基于它们的依赖进行缓存的. ...

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

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

  3. Vue中computed和watch的区别

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

  4. Vue中computed分析

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

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

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

  6. Vue中computed,methods 和watch

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

  7. vue中computed与watch的异同

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

  8. vue中 computed和watch的一些简单理解(区别)

    今天看到一个问题,就是vue的computed和watch要在哪些场景下使用,其实也就是在问他们的区别.computed也就是计算属性,它可以帮助我们将在模板中的一些稍微复杂的逻辑计算放回到js代码中 ...

  9. vue中computed计算属性与methods对象中的this指针

    this 指针问题 methods与computed中的this指针 应该指向的是它们自己,可是为什么this指针却可以访问data对象中的成员呢? 因为new Vue对象实例化后data中的成员和c ...

  10. vue中computed和watch

    computed 计算属性 能够监听vue数据上的变化,页面上来就执行一次,每改变一次数据就又触发.在操作数据的时候,会派生出另一个事情 1.函数形式 computed:{ listenArr(){ ...

随机推荐

  1. 「Note」图论方向 - 网络流

    1. 网络流 1.1. 定义 1.1.1. 网络 网络是指一个有向图 \(G=(V,E)\),每条边 \((u,v)\in E\) 有一个权值,\(c(u,v)\) 称为容量,当 \((u,v)\no ...

  2. 康谋方案 | 高精LiDAR+神经渲染3DGS的完美融合实践

    在自动驾驶时代奔涌向前的路上,仿真测试早已不再是可选项,而是验证智能驾驶系统安全性.鲁棒性和泛化能力的刚需,如何提升仿真测试的保真度已成为无法避免的重要话题. 这正是"数字孪生"出 ...

  3. 小孩子的好老师:ChatMoney全能知识库AI软件

    本文由 ChatMoney团队出品 因为工作需要,浅尝辄止般的用了一下ChatMoney全能知识库AI软件.一些长期积存的问题迎刃而解,但这只是一款企业级大模型功能的冰山一角.让自己尤为惊奇的是里面涵 ...

  4. AI助手:Agent工作流程与应用场景详解

    引言 智能体(Agent)是一种在特定环境中自主行动.感知环境.做出决策并与其他智能体或人类进行交互的计算机程序或实体.它们具备自主性.反应性.社交性和适应性等特点,能够根据环境的变化调整自己的行为, ...

  5. 你应该懂的AI大模型(六)之 transformers

    一.Transformer与transformers 结论:Transformer是模型架构,transfortmers是库. 问:为什么我们要知道Transformer与transformers呢? ...

  6. ABAP基础三——DIALOG整体

    本来想模拟VA01的,后来想想ME21N也很经典,所以就把一些常见的组建都放上面了. 效果图如下: 1.整体设计就是按  抬头(1) + 项目(N) + 伙伴(N) + 相关数据的tabstrip(N ...

  7. homestead 配置多站点 报403

    )配置:Homestead 报403 一般是Homestead.yaml sites没有映射上 导致 vagrant global-status vagrant provision ef7a202 ) ...

  8. 计蒜客 A2285 / 2019ICPC徐州 H - Yuuki and a problem

    右转学倍增值域分块 直接在神秘数的做法上大力树套树是 naive 的,考虑将值域分块的做法代入优化. 对于一个块 \([2^{k}, 2^{k+1})\) 内最小的数 \(m\),如果当前可以表示出的 ...

  9. matlab绘图中set函数的使用汇总

    Matlab 绘图中set函数使用汇总 % 设置标题字体大小,字型 set(get(gca,'title'),'FontSize',10,'FontName','宋体'); % 设置X坐标标题字体大小 ...

  10. 痞子衡嵌入式:在MDK5.40开发环境下添加用户下载算法FLM文件的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在MDK5.40开发环境下添加用户下载算法FLM文件的方法. 最近痞子衡给一个 RT1170 客户制作了一个 SEGGER 下载算法,在 ...