总结:

     computed和watch之间的区别:
            1.computed能完成的功能,Watch都可以实现
            2.watch能完成的功能,computed不一定能完成,比如:watch可以进行异步操作
        两个重要的小原则:
            1.所被vue管理的函数,最好写成普通函数,这样this指代的才是vm或组件实例对象
            2.所有不被vue所管理的函数(定时器的回调函数、ajax的回调函数、promise的回调函数)
              最好写成箭头函数,这样this的指向才是vm或组件实例对象。
1.姓名案例_computed实现
 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>姓名案例_计算属性</title>
8 <!-- 引入vue -->
9 <script type="text/javascript" src="../js/vue.js"></script>
10 </head>
11 <body>
12 <!-- 准备一个div容器 -->
13 <div id="root">
14 姓:<input type="text" v-model="firstName"><br/><br/>
15 名:<input type="text" v-model="lastName"><br/><br/>
16 全名:<span>{{fullName}}</span>
17 </div>
18 </body>
19 <script type="text/javascript">
20 Vue.config.productionTip = false //阻止vue在启动时生成生产提示。
21 const vm = new Vue({
22 el:'#root',
23 data:{
24 firstName:'张',
25 lastName:'三'
26 },
27 computed:{
28 /* 只读不改的简写,实际这里的函数相当于get */
29 fullName(){
30 console.log('get被调用了')
31 return this.firstName + '-' + this.lastName
32 }
33 }
34
35 })
36 </script>
37 </html>

2.姓名案例_watch实现
 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>姓名案例_watch实现</title>
8 <!-- 引入vue -->
9 <script type="text/javascript" src="../js/vue.js"></script>
10 </head>
11 <body>
12 <!-- 准备一个div容器 -->
13 <div id="root">
14 姓:<input type="text" v-model="firstName"><br/><br/>
15 名:<input type="text" v-model="lastName"><br/><br/>
16 全名:<span>{{fullName}}</span>
17 </div>
18 </body>
19
20 <script type="text/javascript">
21 Vue.config.productionTip = false //阻止vue在启动时生成生产提示。
22 const vm = new Vue({
23 el:'#root',
24 data:{
25 firstName:'张',
26 lastName:'三',
27 fullName:'张-三'
28 },
29 watch:{
30 firstName(newValue){
31 this.fullName = newValue + '-' + this.lastName
32 },
33 lastName(newValue){
34 this.fullName = this.firstName + '-' + newValue
35 }
36 }
37 })
38 </script>
39 </html>

watch能完成异步操作,computed不能完成。

 
 

watch对比computed的更多相关文章

  1. vue 生命周期钩子的理解 watch computed

    一  理解vue的生命周期,首先需要注意几个关键字 1. el :选择器 2. $el:对应选择器的template模板(html代码) 3. render:也是vue实例中的一项,其参数更接近vue ...

  2. vue计算属性computed和methods的区别

    computed和methods的区别 在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue. com ...

  3. computed属性和watcher

    computed属性 在模板中使用表达式是非常方便直接的,然而这只适用于简单的操作.在模板中放入太多的逻辑,会使模板过度膨胀和难以维护.例如: <div id="example&quo ...

  4. computed、methods、watch

    computed:计算属性将被混入到 Vue 实例中.所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例. methods:methods 将被混入到 Vue 实例中 ...

  5. vue学习笔记4

    父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script> // 创建 Vue 实例,得到 ViewModel var vm = ne ...

  6. vue学习笔记3

    Vue.js - Day3 定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即 ...

  7. Vue2 学习笔记5

    文中例子代码请参考github watch属性的使用 考虑一个问题:想要实现 名 和 姓 两个文本框的内容改变,则全名的文本框中的值也跟着改变:(用以前的知识如何实现???) 监听data中属性的改变 ...

  8. Vue.js - Day4

    父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script>   // 创建 Vue 实例,得到 ViewModel   var vm ...

  9. Vue.js - Day3

    定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不同: ...

  10. 06-Vue路由

    什么是路由 对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源: 对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有 ...

随机推荐

  1. favorite 单词学习 主要是发音 fa - vor - it 注意 ri不连读 是自然带出来的r的尾音

    favorite 单词学习 主要注意发音 [ ˈfeɪ v(ə)r ɪt ] 主要是发音 fa - vor - it 注意 ri不连读 是自然带出来的r的尾音 favor : 来自拉丁语favere, ...

  2. Elasticsearch(es) 查询语句语法详解

    Elasticsearch 查询语句采用基于 RESTful 风格的接口封装成 JSON 格式的对象,称之为 Query DSL.Elasticsearch 查询分类大致分为全文查询.词项查询.复合查 ...

  3. Client请求外部接口标准处理方式

    简单记录下client外部请求代码的我认为比较标准的书写格式 public List<GdtDailyBalanceReportAO> getGdtDailyReportList2(Lon ...

  4. struts1标签之

    <logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1. java对象的数组 2. ArrayList.Vector.HashMap等 具体用法请参考s ...

  5. 使用Java给图片添加水印

    什么是水印呢?比如使用手机拍摄一张照片的时候,照片右下角的位置显示得有日期和时间信息,那就表示一个水印. 项目开发中给图片添加水印的操作很常见,比如给图片添加日期和时间,给图片添加公司的logo之类的 ...

  6. Toast源码深度分析

    目录介绍 1.最简单的创建方法 1.1 Toast构造方法 1.2 最简单的创建 1.3 简单改造避免重复创建 1.4 为何会出现内存泄漏 1.5 吐司是系统级别的 2.源码分析 2.1 Toast( ...

  7. Three.js中加载和渲染3D Tiles

    1. 引言 3D Tiles 是 3D GIS 中常见的三维数据格式,能否用Three.js来加载渲染呢?肯定是可以,Three.js只是一个WebGL框架,渲染数据肯定可以,但是加载.解析数据得手动 ...

  8. WPF多数类概念性注册加自动扫描

    在java中springboot的配置应用了自动扫描 @ComponentScan(value = {"com.example", "com.fox"}) 而对 ...

  9. hackme 【攻防世界】Reverse

    题目: 丢到PE里, 无壳,64bit 丢到IDA里,shift+F12,查看字符串,找到一个很可疑的字符串 跟进去看看,找到目标函数,我另外搜索了一下,没有mian函数,sub_400F8E应该就是 ...

  10. WPF实现html中的table控件

    前言 相信很多做WPF开发的小伙伴都遇到过表格类的需求,虽然现有的Grid控件也能实现,但是使用起来的体验感并不好,比如要实现一个Excel中的表格效果,估计你能想到的第一个方法就是套Border控件 ...