最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue watch偵聽器有無immediate的運行順序問題

 更新時間:2024年08月07日 10:05:57   作者:敲完這個我就再也不熬夜了  
這篇文章主要介紹了vue watch偵聽器有無immediate的運行順序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

watch偵聽器有無immediate的運行順序

剛寫項目的一個需求中遇到了watch運行順序的坑,本打算把項目弄完再來看看,結果leader說產品還在改需求(高強度學習開始?。?gt;_>)

watch普通監(jiān)聽屬性(無immediate)

在初始化時不會執(zhí)行watch

  created() {
    this.id = 1;
    console.log(this.id);
    console.log(this.name);
  },
  watch: {
    id: function (val) {
        if (val == 0) {
          this.name = "id等于0";
        } else if (val == 1) {
          this.name = "id等于1";
        }
        console.log(this.name, "這里是watch");
      },
  },
  • 結果:

這里有個問題是第一次打印name的值為什么是‘初始值’而不是‘id等于1’。

解決這個疑問就得談到js事件處理的執(zhí)行機制事件循環(huán)。

在created中id=1觸發(fā)watch偵聽器,偵聽器中函數(shù)進入事件queue,繼續(xù)執(zhí)行created,打印兩個log,這里的name為初始值。

created執(zhí)行完后,執(zhí)行事件queue中的watch偵聽器的函數(shù),給name賦值為‘id等于1’

immediate為true

添加immediate,在初始化時也會執(zhí)行watch回調函數(shù),組件加載立即執(zhí)行。

要使用immediate需要添加handler屬性

created() {
    this.id = 1;
    console.log(this.id);
    console.log(this.name);
  },
  watch: {
    id: {
      handler: function (val) {
        if (val == 0) {
          this.name = "id等于0";
        } else if (val == 1) {
          this.name = "id等于1";
        }
        console.log(this.name, "這里是watch");
      },
      immediate: true,
    },
  },
  • 結果:

在組件加載完成時,立即執(zhí)行watch回調函數(shù),即在created前執(zhí)行。

后面的執(zhí)行順序同無immediate時。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

广灵县| 兴宁市| 上虞市| 麻城市| 乐安县| 崇明县| 徐闻县| 华阴市| 宁海县| 定安县| 会泽县| 长海县| 满洲里市| 邢台市| 睢宁县| 荣成市| 墨竹工卡县| 沁水县| 青田县| 黄冈市| 嵩明县| 麻栗坡县| 通化市| 临夏市| 阜新| 隆化县| 家居| 鄂托克前旗| 武汉市| 泌阳县| 阿拉善盟| 福贡县| 宁德市| 弥勒县| 瑞丽市| 四会市| 宁夏| 涞水县| 鹤庆县| 平度市| 和政县|