computed 和 watch 联用

computed 和 watch 联用

情景:有一个变量的改变时,会调用多个组件的多个接口

在这里插入图片描述

例如大屏的这个下拉框按钮,选择日期的时候,整个大屏的数据都需要更新

  1. 先在 store 文件夹下的 index.js 文件声明一个变量,全局使用
import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user
  },
  state: {
    updateDataNum: 0,
    area: '石家庄',
    adcode: '0311',
    year: '',
    month: '',
    unfinished: {}, 
    closed: {}, 
    token: '',
    computedVal: "1"  // 这是声明的变量
  },
  getters
})

export default store
  1. 给下拉框绑定值
  <el-select
        v-model="computedVal"
        placeholder="请选择"
        @change="selChange()"
      >
        <el-option
          v-for="item in options"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        >
        </el-option>
   </el-select>
  1. 声明计算属性并监听,在数据发生改变的时候,调用查询数据的接口
  computed: {
    computedVal: {
      get () {
        return this.$store.state.computedVal
      },
      set (newValue) {
        this.$store.state.computedVal = newValue
        return newValue
      }
    }
  },

  watch: {
    computedVal (newVal, oldVal) {
      console.log('🚀 ~ file: index.vue:60 ~ computedVal ~ oldVal:', oldVal)
      console.log('🚀 ~ file: index.vue:60 ~ computedVal ~ newVal:', newVal)
      this.getData()
    }
  },

这样在下拉框选中的数据发生改变的时候,就会自动调用查询数据的接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: computedwatch都是Vue中的响应式数据处理方式,但它们的使用场景不同。 computed适用于需要根据已有的数据计算出新的数据的情况,例如计算商品总价、过滤数据等。computed会缓存计算结果,只有当依赖的数据发生变化时才会重新计算,因此可以提高性能。 watch适用于需要在数据发生变化时执行异步或开销较大的操作的情况,例如发送网络请求、操作DOM等。watch会在数据发生变化时立即执行回调函数,因此可以及时响应数据变化,但也可能会导致性能问题。 总之,computed适用于计算数据,watch适用于监听数据变化并执行相应操作。 ### 回答2: 在Vue.js中,computedwatch是两个非常常用的属性。computed属性是计算属性,而watch属性是监听属性的变化。它们的使用场景各不相同,具体如下: computed属性主要用于对已有数据进行加工处理得到新的值,或者根据已有数据进行一些计算。computed属性可以依赖于data属性或者其他computed属性。当computed依赖的数据出现变化时,computed属性也会自动更新。这样可以避免重复计算,提高性能。比如:在购物车页面,我们需要显示购物车中所有商品的总价格,那么我们可以利用computed属性来计算总金额。 watch属性主要用于监听某个特定数据的变化,并且在数据变化时执行一些特定的操作。可以想象成“观察者”,而Vue提供了这个“观察者”功能。查看和响应某个特定状态的变化,当这些状态变化时,将执行一些特定操作。比如:在表格内实现搜索功能,用户在文本框内输入搜索关键词后,我们需要根据用户输入的内容去搜索表格内的内容,然后显示匹配的内容。这个时候,我们就可以利用watch属性监听输入框的输入状态,当用户输入时,watch属性会自动更新搜索结果。 通过上述描述,可以清楚地看出,在Vue.js中,computedwatch的使用场景各不相同。computed属性主要用于计算新的值或者根据已有数据进行计算,而watch属性主要用于监听指定数据的变化。当我们清楚地了解它们的作用时,就能在Vue.js开发中更加灵活地应用它们。 ### 回答3: computedwatch是Vue.js框架中常用的两个数据处理方式。在开发中,我们通过使用computedwatch可以更加方便快捷地处理数据,并且提升开发效率。 computed的使用场景: computed是一种计算属性,适用于需要实时计算的数据。computed属性通过计算数据对其他数据的影响来生成新的数据。computed能够优化数据的处理,当从对应的依赖数据更改时,computed会自动更新。常见的应用场景包括: 1. 对于一项复杂的数据处理操作,computed能够将其分解为更小的操作,逐个计算,最后生成结果。 2. 对于需要反复使用的数据处理结果,computed能够缓存结果,并在后续使用过程中直接返回,提高计算速度。 3. 对于数据改变后,需要即时更新的操作,computed能够通过更新依赖数据来实现即时更新的效果。 watch的使用场景: watch适用于需要监听数据变化并采取相应操作的场景。当数据变化时,watch会自动触发对应的回调函数。常见的应用场景包括: 1. 监听用户的操作,例如表单提交、数据改变等,通过触发watch回调函数来更新页面。 2. 对于需要及时处理的异步请求,可以在watch中监听到请求数据的变化,并及时更新页面。 3. 对于一些复杂的业务逻辑,在数据变化后需要执行多个操作时,可以使用watch动效应来增强程序的可维护性和可扩展性。 总之,computedwatch有各自的使用场景,使用时需要依据实际业务需求来选择合适的方式,能够提升开发效率,提高程序健壮性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值