91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用vue3.0中的watch偵聽器

發布時間:2021-10-09 13:52:00 來源:億速云 閱讀:2700 作者:柒染 欄目:開發技術

本篇文章為大家展示了怎么使用vue3.0中的watch偵聽器,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

前言

雖然計算屬性在大多數情況下更合適,但有時也需要一個自定義的偵聽器。這就是為什么 Vue 通過watch選項提供了一個更通用的方法,來響應數據的變化。當需要在數據變化時執行異步或開銷較大的操作時,這個方式是最有用的。

偵聽器和計算屬性的區別

計算屬性里不可以做異步操作,偵聽器可以做異步操作,相當于計算屬性的升級版

怎么使用vue3.0中的watch偵聽器 

vue3如何使用watch呢?

基本使用

<template>
  <h2>watch偵聽器頁面</h2>
  <p>普通偵聽數據:{{ num }}</p>
  <button @click="butFn">點擊</button>
</template>

script

import { ref, watch } from 'vue'
// 記得用到什么就要導入什么vue3的新特性,按需調用
 setup() {
 
    const num = ref(0)
    // watch(要偵聽的數據,回調函數)
    watch(num, (v1, v2) => {
      // v1 是改變以后的新值
      // v2 是改變前的值
      console.log(v1, v2)
      // 要點:偵聽普通函數可以獲取修改前后的值,被偵聽的數據必須是響應式的
    })
    
    // 單機事件
      const butFn = () => {
      num.value++
    }
    
     return { butFn, num }
}

監聽多個響應式數據

const num = ref(0)
    const num2 = ref(20)
    
    watch([num, num2], (v1, v2) => {
      // 存入的結果是一個數組,結果返回的也是一個已數組格式的結果
      // v1是最新結果的數組
      // v2是舊數據的數組
      console.log('v1', v1, 'v2', v2)
    // 總結:可以得到更新前后的值,偵聽的結果也是數組數據順序一致
    })

偵聽reactive定義的響應式數據

	const obj = reactive({
      msg: '奇奇怪怪可可愛愛'
    })
    
   watch(obj, () => {
      // 只能獲取到最新的值
      console.log(obj.msg)
    })

總結:如果偵聽對象,那么偵聽器的回調函數的兩個參數是一樣的結果,表示最新的對象數據,此時也可以直接讀取被偵聽的對象,那么得到的值也是最新的。

監聽reactive定義的響應式數據的某一個屬性

	const obj = reactive({
      msg: '奇奇怪怪可可愛愛'
    })
    
	watch(() => obj.msg,(v1, v2) => {
        // v1 就是被監聽數據的最新值
        // v2 就是被監聽數據的原有值
        console.log(v1, v2)
        // 總結:如果偵聽對象中當個屬性,需要使用箭頭函數的方式
        // 偵聽更少的數據有利于提高性能
      }
    )

配置選項用法

   const obj = reactive({
      msg: {
        info: 'ooo'
      }
    })
   watch(() => obj.msg,(v1, v2) => {
        console.log(v1, v2)
      },
      {
        // 首次渲染組件就觸發一次
        immediate: true,
        // 開啟深度監聽,對象里面的數據如果發生變化也會被偵聽到
        // 如果監聽的數據是一個比較長的表達式,那么需要用一個函數的方式
        // 但是寫成函數形式之后,里層的數據變化不到,所以需要添加deep選項
        deep: true
      }
    )

上述內容就是怎么使用vue3.0中的watch偵聽器,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸州市| 五常市| 渭源县| 莱芜市| 蓬溪县| 肇庆市| 盐城市| 班戈县| 广德县| 山丹县| 曲沃县| 泌阳县| 宁强县| 双辽市| 慈溪市| 平顶山市| 三亚市| 厦门市| 都昌县| 万源市| 探索| 交口县| 湘西| 独山县| 芦山县| 灵川县| 古田县| 新宾| 武鸣县| 本溪市| 青龙| 苍南县| 眉山市| 玉环县| 广安市| 磴口县| 当阳市| 共和县| 肇源县| 长垣县| 达州市|