千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > Vue3計算屬性傳參用法介紹

Vue3計算屬性傳參用法介紹

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-23 15:32:03 1700724723

一、計算屬性傳參概述

計算屬性是vue中一種非常有用的數(shù)據(jù)處理方式,能夠根據(jù)自身的依賴動態(tài)計算出新值。在vue3中,計算屬性的用法相比于vue2有所變化,可以通過函數(shù)形式傳參來實現(xiàn)更靈活的數(shù)據(jù)處理。

二、計算屬性傳遞參數(shù)的方法

在vue2中,計算屬性的定義方式如下:


computed: {
  fullName: function () {
    return this.firstName + ' ' + this.lastName
  }
}

在vue3中,我們可以使用一個函數(shù)來聲明計算屬性,并且可以在函數(shù)內(nèi)傳遞參數(shù):


setup() {
  const firstName = ref('Jane')
  const lastName = ref('Doe')

  const fullName = computed(() => {
    return firstName.value + ' ' + lastName.value
  })

  return {
    firstName,
    lastName,
    fullName
  }
}

以上代碼中,我們使用了函數(shù)式的方式定義了計算屬性fullName,并使用了firstName和lastName兩個ref數(shù)據(jù)作為fullName的參數(shù),在函數(shù)內(nèi)通過value來獲取這兩個參數(shù)的值。

三、動態(tài)修改計算屬性參數(shù)

在vue3中,我們可以通過watchEffect和watch來監(jiān)聽計算屬性參數(shù)的變化,并在變化時重新計算計算屬性的值。下面是一個例子,我們通過input輸入框來動態(tài)修改firstName參數(shù):


setup() {
  const firstName = ref('Jane')
  const lastName = ref('Doe')
  const inputRef = ref(null)

  const fullName = computed(() => {
    return firstName.value + ' ' + lastName.value
  })

  watchEffect(() => {
    console.log(fullName.value)
  })

  function updateFirstName() {
    firstName.value = inputRef.value.value
  }

  return {
    firstName,
    lastName,
    fullName,
    inputRef,
    updateFirstName
  }
}

以上代碼中,我們通過watchEffect監(jiān)聽fullName的變化,并在控制臺輸出其值。我們還定義了一個updateFirstName函數(shù),在input框輸入新的firstName后觸發(fā)該函數(shù)來更新firstName的值。這樣,在firstName參數(shù)改變后,計算屬性fullName會被自動重新計算。

四、計算屬性傳遞多個參數(shù)

在vue3中,我們可以通過使用對象或數(shù)組的形式來傳遞多個參數(shù)。以下是一個接收對象形式參數(shù)的計算屬性:


setup() {
  const firstName = ref('Jane')
  const lastName = ref('Doe')
  const info = ref({
    age: 25,
    gender: 'female'
  })

  const fullNameWithInfo = computed(() => {
    return firstName.value + ' ' + lastName.value + ', ' + info.value.age + ', ' + info.value.gender
  })

  return {
    firstName,
    lastName,
    info,
    fullNameWithInfo
  }
}

以下是一個接收數(shù)組形式參數(shù)的計算屬性:


setup() {
  const scores = ref([75, 80, 90])

  const totalScore = computed(() => {
    return scores.value.reduce((total, score) => total + score)
  })

  const averageScore = computed(() => {
    return totalScore.value / scores.value.length
  })

  return {
    scores,
    totalScore,
    averageScore
  }
}

以上代碼中,我們定義了一個接收對象參數(shù)的計算屬性fullNameWithInfo,其中參數(shù)info是一個ref對象;我們還定義了一個接收數(shù)組參數(shù)的計算屬性averageScore,其中參數(shù)scores是一個ref數(shù)組。

五、結(jié)語

通過本文的介紹,我們可以看到vue3中計算屬性傳參的一些常用方法,包括傳遞單個參數(shù)、動態(tài)修改參數(shù)、傳遞多個參數(shù)等。這些方法能夠讓我們更靈活地處理數(shù)據(jù),并更好地實現(xiàn)組件的復(fù)用。

tags: vscode斷點
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
茄子国产成版人视频在线观看 | 亚洲第一综合天堂另类专 | 无色码中文字幕亚洲精品 | 在线影片亚洲视频 | 亚洲人成网址在线播放a | 亚洲国产精品悠悠久久琪琪 |