vue2 provide/inject watch 监控inject中值变化

在Vue 2.x中,使用inject注入的值默认情况下是不能被watch直接监控到的,因为inject提供的值不是响应式的。这是Vue 2.x的设计,与Vue 3.x中的provideinject不同,Vue 3.x中的inject提供的值是响应式的,可以直接被watch监控到。

如果你希望在Vue 2.x中监控inject中的值的变化

使用计算属性或引用类型的响应式数据 :将inject提供的值保存在组件的响应式数据中,然后使用计算属性或watch来监控这个响应式数据的变化。例如:

复制代码
<template>
  <div>
    <p>{{ injectedValue }}</p>
  </div>
</template>

<script>
export default {
  inject: ['injectedValue'],
  data() {
    return {
      // 将 injectedValue 存储在响应式数据中
      valueToWatch: this.injectedValue,
    };
  },
  watch: {
    valueToWatch(newValue, oldValue) {
      console.log('injectedValue 变化:', newValue, oldValue);
      // 在这里可以执行相应的操作
    },
  },
};
</script>

示例二、

父组件:

复制代码
<template>
  <div @click="changeMap"></div>
</template>

<script>
export default {
   provide() {
        return {
            mapLoad: this.mapLoad,
        };
    },
  data(){
        return {
            isLoadMap: false
        }
    },
  methods: {
        mapLoad(){
            return this.isLoadMap
        },
        changeMap(){
           this.isLoadMap = !this.isLoadMap
        }
    },
};
</script>

inject使用的地方

复制代码
<template>
  <div>
  </div>
</template>

<script>
export default {
  inject: ['mapLoad'],
   computed: {
        watchloadmap() {
            return this.mapLoad()
        }
    },
  watch: {
    watchloadmap(newValue, oldValue) {
      console.log('injectedValue 变化:', newValue, oldValue);
      // 在这里可以执行相应的操作
    },
  },
};
</script>

注意事项:

相关推荐
西瓜太郎12349 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
多加点辣也没关系9 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
陈随易11 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周11 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师12 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing9812 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
Highcharts.js12 小时前
常见报错排雷指南2:导出失败的官方解法
javascript·react.js·ecmascript·highcharts·可视化图表·导出模块失败·导出服务
EatFan12 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡12 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
IT_陈寒13 小时前
Redis的Set操作居然能把我的服务整挂了?
前端·人工智能·后端