Vue中watch-computed-methods

Vue中watch-computed-methods

watch

  1. 作用
  • 用来监听data中定义的数据,当data中定义的数据发生了变化,那么watch中的key就会触发
  • watch是一个对象
    watch: {}
  • watch中可以设置多个类型的键值
  1. 使用方式( 重点 )
  • 方法
    watch: {
      fn () {}
    }
  • 对象: ( 深度监听 )
    watch: {
      fn: {
        handler(){},
        deep: true
      }
    }

## 计算属性
1. 使用方式
    - 里面存放方法
    ```javascript
      computed: {
        fn () {
          return ''   //必须要有返回值
        }
      }
- 里面存放对象
?```javascript
  computed: {
    newName: {
      get () {
        return '' //get里面要有return
      },
      set ( val ) { //val就是修改后的值

      }
    }
  }
?```
- 注意: 上面的get,set我们统一起了个名字叫做: 存储器,别人也叫getter/setter
- get set 这两者, 对象中有,类里面也有
- **get set 是计算属性的    这个理解是错的**

watch vs computed

  1. watch是用来监听某一个数据的,当数据发生改变是,watch就会自动触发,然后我们可以进行一些任务
  2. computed是为了暴露一个全局变量,这个全局变量是经由一定逻辑产生的
  3. 什么时候选择 watch ? 什么是选择 computed ? 什么时候选择 methods?
  • 数据量较大,并且有异步操作我们选择 watch 应用场景: 上拉加载,下拉刷新
  • computd的使用满足两个就可以了
    • 暴露一个类似全局变量的数据
    • 可以进行逻辑的处理
  • methods的使用: 事件程序程序 ( 用户交互 )

原文地址:https://www.cnblogs.com/xiaohanga/p/11068715.html

时间: 2024-10-09 00:28:54

Vue中watch-computed-methods的相关文章

对vue中的computed属性,watch监听,计算属性理解

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

vue中的computed和methods的区别

computed是计算属性的意思,我们在得到最后结果的时候可以使用computed 例如:<input type="checkbox" v-model="checkAll">computed: {checkAll: {// 当数据变化时会重新计算(取值)get() {return this.tableData.every(item => item.isSelect)},// val给checkbox赋值时set(val) {this.tableDa

解决vue中无法取得methods方法中的return值

如果在vue的methods中去return出来一个值, 然后发现调用这个方法的时候, 并不能获取到, 得到的是undefined... 解决方法是使用callback回调函数. 举个栗子:   这个样子获取到的结果是undefined 正确写法: 原文地址:https://www.cnblogs.com/betty-niu/p/12027585.html

记一笔vue中的中央事件总线的问题,以及解决方案

代码结构:首先HeaderNav组件是被单独拎出来的,router-view中就对应了内容组件,由于有时候i有的界面的header内容是不一样的,因此要用到兄弟组件的相互通信,这个时候我首先选择了bus[中央事件总线] <div class="" v-if="!showScan"> <HeaderNav/> <router-view/> </div> 问题描述:就是在页面上用按钮点击切换路由的时候了,header是可以

vue中methods、computed、watch区别

vue中methods.computed.watch区别methods:事件调用的钩子 computed:{ // 计算属性是根据他依赖的值计算的,当依赖值发生变化,其跟着改变 // 计算属性是依赖缓存} watch: { // watch 和 computed 区别: // watch 强调的是 观测某个状态,根据状态的改变而做事情 // 而computed 强调的是 根据状态返回一个新的状态} 原文地址:https://www.cnblogs.com/houjl/p/10127451.htm

怎样理解 Vue 中的计算属性 computed 和 methods ?

需求: 在 Vue 中, 我们可以像下面这样通过在 引号 或 双花括号 内写 js 表达式去做一些简单运算, 这是可以的, 不过这样写是不直观的, 而且在 html 中 夹杂 一些运算逻辑这种做法其实并不好. 最理想的情况是: html 只负责展示, 绑定的数据都是 赤裸裸 的 变量, 而非 表达式 , 这样就会比较人性化. 想要达到这种效果可以有两种方法: computed 和 methods. 1. 使用 methods 相当于是为这个 字符串倒序 的功能单独写了一个函数, 这个函数在 Vu

解析Vue.js中的computed工作原理

我们通过实现一个简单版的和Vue中computed具有相同功能的函数来了解computed是如何工作的.写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. JS属性: JavaScript有一个特性是 Object.defineProperty ,它能做很多事,但我在这篇文章只专注于这个方法中的一个: var person = {}; Object.defineProperty (person, 'age', { get: function ()

vue03----生命周期、nextTick()、ref、filter、computed、vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到什么问题、踩过的坑)

### 1.vue的组件和实例都有生命周期,而且是一样的 生命周期:(组件从创建到销毁的过程) 创建 挂载 更新 销毁 组件到达某一个阶段就会自动触发某一些函数,这个函数就叫生命周期的钩子函数. 创建:组件创建的时候触发 beforeCreate created     组件刚创建的数据请求 挂载:创建完成挂载前后触发 beforeMount mounted     DOM的初始化操作 更新:数据发生改变的时候触发 beforeUpdate updated     数据的变化监听,尽量不要在这里

vue中watch的使用

vue中watch的使用 vue中的watch是一个比较重要的概念,通过他我们可以检测data的变化,下面进行详细的介绍. watch定义方式如下: {[key: string]: string | Function | Object } 即在watch中, 键是一个字符串,它是被观测的对象. 值可以是一个字符串,这个字符串是方法名. 值还可以是一个函数,但不能使用箭头函数的形式,this会出现问题. 值也可以是一个对象,其中包含回调函数可以其他一些选项:比如是否深度遍历. 举例如下: <!DO

vue中使用raphael.js实现地图绘制

一.效果图 二.在vue中引入raphael.js npm i raphael -S 三.封装一个名为StreetMap的组件,代码如下 1 <template> 2 <div> 3 <div id='streetMap'> 4 <div class="tips" v-show="tipsShow" :style="tipsStyle"> 5 <span v-html="tipsCo