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

詳解Vue computed計算屬性是什么

 更新時間:2023年03月09日 09:14:56   作者:劍九 六千里  
在vue中,有時候你需要對data中的數(shù)據(jù)進行處理,或者對抓取的數(shù)據(jù)進行處理之后再掛載呈現(xiàn)到標(biāo)簽中,這時候你就需要計算屬性了,當(dāng)然看到這里你可能還是不了解那下面我舉幾個實例并附代碼解釋

1. Vue3中的computed函數(shù)

1.1. 什么是computed

computed屬性是Vue3中的一個響應(yīng)式計算屬性,它可以根據(jù)其他響應(yīng)式數(shù)據(jù)的變化而自動更新其自身的值。computed屬性可以接收一個計算函數(shù),并在計算函數(shù)中使用其他響應(yīng)式數(shù)據(jù)的值進行計算。當(dāng)任何一個參與計算的響應(yīng)式數(shù)據(jù)發(fā)生變化時,computed屬性會自動重新計算其值,并觸發(fā)相應(yīng)的依賴更新。

1.2. 如何定義computed

在Vue3中,你可以通過computed函數(shù)來定義一個計算屬性。computed函數(shù)接收一個計算函數(shù)作為參數(shù),并返回一個響應(yīng)式的ref對象。

下面是一個使用computed函數(shù)形式用法的例子:

import { computed, reactive, ref } from 'vue'
const state = reactive({
  count: 0
})
const doubleCount = computed(() => {
  return state.count * 2
})
console.log(doubleCount.value) // 輸出:0
state.count = 1
console.log(doubleCount.value) // 輸出:2

在上面的例子中,我們使用computed函數(shù)定義了一個計算屬性doubleCount,它的值是state.count的兩倍。我們可以通過doubleCount.value來訪問計算屬性的值,并且當(dāng)state.count的值發(fā)生變化時,doubleCount的值也會自動更新。

下面是一個使用computed對象形式用法的例子:

import { computed, reactive } from 'vue'
const state = reactive({
  count: 0
})
const doubleCount = computed({
  get() {
    return state.count * 2
  },
  set(value) {
    state.count = value / 2
  }
})
console.log(doubleCount.value) // 輸出:0
doubleCount.value = 6
console.log(state.count) // 輸出:3
console.log(doubleCount.value) // 輸出:6

1.3. computed函數(shù)的使用場景

computed屬性通常用于處理需要根據(jù)其他響應(yīng)式數(shù)據(jù)計算得出的值的情況。下面是一些computed屬性的使用場景:

1.3.1. 過濾和排序

當(dāng)我們需要根據(jù)其他響應(yīng)式數(shù)據(jù)進行數(shù)據(jù)過濾和排序時,可以使用computed屬性來計算得出過濾和排序后的結(jié)果。例如:

import { computed, reactive } from 'vue'
const state = reactive({
  todos: [
    { id: 1, text: '學(xué)習(xí)Vue3', done: false },
    { id: 2, text: '學(xué)習(xí)React', done: false },
    { id: 3, text: '學(xué)習(xí)Angular', done: true }
  ],
  filter: 'all'
})
const filteredTodos = computed(() => {
  if (state.filter === 'all') {
    return state.todos
  } else if (state.filter === 'active') {
    return state.todos.filter(todo => !todo.done)
  } else if (state.filter === 'completed') {
    return state.todos.filter(todo => todo.done)
  }
})
console.log(filteredTodos.value) // 輸出:[{ id: 1, text: '學(xué)習(xí)Vue3', done: false }, { id: 2, text: '學(xué)習(xí)React', done: false }, { id: 3, text: '學(xué)習(xí)Angular', done: true }]
state.filter = 'active'
console.log(filteredTodos.value) // 輸出:[{ id: 1, text: '學(xué)習(xí)Vue3', done: false }, { id: 2, text: '學(xué)習(xí)React', done: false }]

在上面的例子中,我們使用computed函數(shù)定義了一個計算屬性filteredTodos,它根據(jù)state.todosstate.filter的值進行過濾,并返回過濾后的結(jié)果。當(dāng)state.filter的值發(fā)生變化時,filteredTodos的值也會自動更新。

1.3.2. 數(shù)組計算

當(dāng)我們需要對一個數(shù)組進行計算時,可以使用computed屬性來計算得出數(shù)組的值。例如:

import { computed, reactive } from 'vue'
const state = reactive({
  todos: [
    { id: 1, text: '學(xué)習(xí)Vue3', done: false },
    { id: 2, text: '學(xué)習(xí)React', done: false },
    { id: 3, text: '學(xué)習(xí)Angular', done: true }
  ]
})
const totalTodos = computed(() => {
  return state.todos.length
})
const completedTodos = computed(() => {
  return state.todos.filter(todo => todo.done).length
})
console.log(totalTodos.value) // 輸出:3
console.log(completedTodos.value) // 輸出:1

在上面的例子中,我們使用computed函數(shù)定義了兩個計算屬性totalTodoscompletedTodos,它們分別計算了state.todos數(shù)組的總長度和已完成的數(shù)量。當(dāng)state.todos數(shù)組的值發(fā)生變化時,totalTodoscompletedTodos的值也會自動更新。

2. computed函數(shù)的原理

在Vue3中,computed屬性的原理是使用了一個getter函數(shù)和一個setter函數(shù)來實現(xiàn)。當(dāng)我們訪問計算屬性的值時,會調(diào)用getter函數(shù)進行計算,并將計算結(jié)果緩存起來。當(dāng)參與計算的響應(yīng)式數(shù)據(jù)發(fā)生變化時,會觸發(fā)依賴更新,并自動調(diào)用getter函數(shù)重新計算計算屬性的值。當(dāng)我們修改計算屬性的值時,會調(diào)用setter函數(shù)進行更新。

總結(jié)

computed屬性是Vue3中的一個響應(yīng)式計算屬性,它可以根據(jù)其他響應(yīng)式數(shù)據(jù)的變化而自動更新其自身的值。computed屬性通常用于處理需要根據(jù)其他響應(yīng)式數(shù)據(jù)計算得出的值的情況,例如過濾和排序、數(shù)組計算等。computed屬性的原理是使用了一個getter函數(shù)和一個setter函數(shù)來實現(xiàn),并將計算結(jié)果緩存起來,以提高性能和減少計算次數(shù)。

到此這篇關(guān)于詳解Vue computed計算屬性是什么的文章就介紹到這了,更多相關(guān)Vue computed內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何在Vue中快速實現(xiàn)數(shù)據(jù)可視化大屏展示

    詳解如何在Vue中快速實現(xiàn)數(shù)據(jù)可視化大屏展示

    在現(xiàn)代數(shù)據(jù)驅(qū)動的應(yīng)用程序中,數(shù)據(jù)可視化大屏已經(jīng)成為了非常重要的一環(huán),通過對海量數(shù)據(jù)進行可視化展示,可以幫助用戶更好地理解和分析數(shù)據(jù),從而做出更加明智的決策,在Vue中進行數(shù)據(jù)可視化大屏展示也變得越來越流行,本文將介紹如何在Vue中快速實現(xiàn)數(shù)據(jù)可視化大屏展示
    2023-10-10
  • Vue2.X 通過AJAX動態(tài)更新數(shù)據(jù)

    Vue2.X 通過AJAX動態(tài)更新數(shù)據(jù)

    這篇文章主要介紹了Vue2.X 通過AJAX動態(tài)更新數(shù)據(jù)的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • vue里使用create,mounted調(diào)用方法的正確姿勢說明

    vue里使用create,mounted調(diào)用方法的正確姿勢說明

    這篇文章主要介紹了vue里使用create,mounted調(diào)用方法的正確姿勢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue用v-for給循環(huán)標(biāo)簽自身屬性添加屬性值的方法

    Vue用v-for給循環(huán)標(biāo)簽自身屬性添加屬性值的方法

    這篇文章主要介紹了Vue用v-for給循環(huán)標(biāo)簽自身屬性添加屬性值的方法,文中大家給大家列舉了三種方法 ,需要的朋友可以參考下
    2018-10-10
  • 解決vue單頁面應(yīng)用打包后相對路徑、絕對路徑相關(guān)問題

    解決vue單頁面應(yīng)用打包后相對路徑、絕對路徑相關(guān)問題

    這篇文章主要介紹了解決vue單頁面應(yīng)用打包后相對路徑、絕對路徑相關(guān)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 一文詳解Vue響應(yīng)式數(shù)據(jù)的原理

    一文詳解Vue響應(yīng)式數(shù)據(jù)的原理

    在vue2的響應(yīng)式中,存在著添加屬性、刪除屬性、以及通過下標(biāo)修改數(shù)組,但頁面不會自動更新的問題,而這些問題在vue3中都得以解決,本文就給大家詳細(xì)的介紹一下Vue響應(yīng)式數(shù)據(jù)原理,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • vue3組件式彈窗打開的3種方式小結(jié)

    vue3組件式彈窗打開的3種方式小結(jié)

    這篇文章主要給大家介紹了關(guān)于vue3組件式彈窗打開的3種方式,彈窗組件是常見的交互組件,它能夠彈出一些提示信息、提醒用戶進行操作等等,需要的朋友可以參考下
    2023-07-07
  • Vue中實現(xiàn)深度監(jiān)聽的方法小結(jié)

    Vue中實現(xiàn)深度監(jiān)聽的方法小結(jié)

    在Vue中,深度監(jiān)聽是一種非常常見且重要的功能,它可以讓我們監(jiān)聽對象內(nèi)部的所有屬性,并對這些屬性的變化做出相應(yīng)的處理,在本篇博客中,我將為大家介紹Vue中如何實現(xiàn)深度監(jiān)聽的方法,需要的朋友可以參考下
    2024-09-09
  • antd vue表格可編輯單元格以及求和實現(xiàn)方式

    antd vue表格可編輯單元格以及求和實現(xiàn)方式

    這篇文章主要介紹了antd vue表格可編輯單元格以及求和實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3哈希模式實現(xiàn)錨點導(dǎo)航方式

    Vue3哈希模式實現(xiàn)錨點導(dǎo)航方式

    這篇文章主要介紹了Vue3哈希模式實現(xiàn)錨點導(dǎo)航方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

比如县| 灵丘县| 富顺县| 西林县| 枣强县| 兰坪| 巫溪县| 罗甸县| 青阳县| 马尔康县| 叶城县| 胶州市| 定边县| 梅州市| 道真| 莒南县| 深泽县| 韶山市| 扎囊县| 扶沟县| 册亨县| 同仁县| 浑源县| 龙江县| 临安市| 石城县| 栾川县| 仪陇县| 仁寿县| 监利县| 湘潭市| 漳州市| 青州市| 平阳县| 逊克县| 阿拉善盟| 广饶县| 虹口区| 大悟县| 江阴市| 东城区|