浅谈vue中watch监听器的触发时机(watch的坑)

起因

我需要在页面created时获得商家的类型id值,然后监听id值,动态的改变请求接口的地址。请求接口的函数在mounted中执行。业务逻辑写完后发现,页面在第一次加载时,接口没有数据,原因接口地址为空,即接口地址没有改变。

代码

 created() {

    this.typeId = this.$route.params.id;
    console.log("this.typeId的值发生改变,触发watch");

  },
  mounted() {

    console.log(this.typeUrl, "mounted中的typeUrl的值");
    //访问接口的函数
    this.getData();
  },

watch

  watch: {
  // 监听订单类型 给出对应面包屑
  typeId: function (val) {
    if (val == 1) {
      console.log("watch触发了");

      this.selfBreadcrumb[1].name = "核销订单";
      this.typeUrl = "settlements";
      console.log(this.typeUrl, "这里是watch");
    } else if (val == 2) {
      this.selfBreadcrumb[1].name = "物流订单";
      this.typeUrl = "logistics-orders";
    } else if (val == 4) {
      this.selfBreadcrumb[1].name = "外卖订单";
      this.typeUrl = "takeout-orders";
    }
  },

控制台

在这里插入图片描述

说明

watch的触发会在created和mounted结束后。

先占个坑,具体原理如何只有等我项目完成了再来康康。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值