vue3 computed方法使用詳細講解

Computed方法用于創建計算屬性,它的值由其他響應式數據計算得出,并且會在依賴數據發生改變時自動更新。因為vue3兼容vue2的選項式api,所以習慣用vue2的小伙伴可以直接用vue2的方法寫是沒有問題的。但我這里介紹的是computed在vue3中的新語法:

內容涵蓋了computed在我們開發中所有能用到的方法,另外也會在每個使用方法上附上使用情景:

1.基礎寫法

使用場景:我們在做項目時經常會在模板中寫表達式來獲取自己想要的結果,比如這樣:<span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span> 但這樣的表達式寫入太多會造成代碼臃腫,所以官方不建議在模板中寫入太多的表達式操作,我們就可以使用computed方法來實現相同的功能:

<script setup>
// 1.第一步先引入computed方法:
import { ref, computed } from 'vue'const author = ref(['1','2','3'])// 2.我們定義了一個計算屬性publishedBooksMessage 來接收computed()方法返回的值
const publishedBooksMessage = computed(() => {return author.length > 0 ? 'Yes' : 'No'
})
</script><template>
// 3.將publishedBooksMessage 變量寫到模板中<span>{{ publishedBooksMessage }}</span>
</template>

注意:基礎寫法中computed()方法默認接收的是一個getter函數,返回值(也就是例子中的publishedBooksMessage 的值)為一個可讀計算屬性ref,也就是我們拿到值之后通常在別的地方直接引用就行,是不能做更改操作的,比如publishedBooksMessage.value++這樣的操作,但基礎寫法在日常生活中使用的更多。所以只是可讀也夠用了

2. 完整寫法

使用場景:我在基礎寫法中介紹到,基礎寫法返回的值只可讀不可更改,所以當我們的項目涉及到需要更改的操作時,可以使用computed()的完整寫法,完整寫法提供getter和setter兩個函數,我們在getter函數中獲取該計算屬性的值,在setter函數中可以對該計算屬性的值進行更改操作,默認的基礎寫法只提供getter函數哦

<script setup>import {ref,computed } from 'vue'let booksNum = computed({ get:()=>{   return booksNum.value *10  }, set:(value)=>{   return booksNum.value = value/10 } 
})</script>

3.computed方法接收參數

使用場景:我們在computed的基礎寫法和完整方法中其實已經滿足我們絕大部分需求了,但有些小伙伴在開發時會遇到這樣類似這樣的問題:在模板中使用v-for遍歷循環時需要傳參,computed()方法需要接收參數才能處理數據,這種情況下computed方法該如何接收參數呢?別慌,很簡單,只需要在計算屬性內部返回一個函數就可以了

<script setup>import {ref,computed } from 'vue'const arrList  = ref('你好','2','3')const result =computed(()=>{return (text) =>{return text+'1'}
})</script ><template><div   v-for="item in arr" ><span  v-html="result (item)"></span></div>
</template>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79057.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

std::iota(C++)

std::iota 1. 概述2. 函數原型3. 使用示例示例 1&#xff1a;填充 vector<int>示例 2&#xff1a;從非零起始值開始 4. 應用場景5. 注意事項6. 與其它算法比較小結 1. 概述 std::iota 定義在頭文件 中&#xff0c;C11 起引入。 它用于向前迭代器區間依次填入連續遞增的數…

基于Jaccard算法的用戶瀏覽歷史推薦商品系統實戰+springboot+vue源碼實現

大家好&#xff0c;這里是小羅畢設工作室。今天給大家帶來了一套完整的推薦系統&#xff1a; “基于Jaccard算法的用戶瀏覽歷史推薦商品系統”。 系統源碼后端實現是springboot&#xff0c;前端是vue3。 視頻演示 基于Jaccard算法的用戶瀏覽歷史推薦商品系統實戰 圖片截圖 算法…

正態分布和冪律分布

1. 背景與引入 正態分布 歷史來源&#xff1a;18世紀由高斯&#xff08;Gauss&#xff09;在研究測量誤差時提出&#xff0c;后被廣泛應用于自然現象和社會科學的數據建模。重要性&#xff1a;被稱為“鐘形曲線”&#xff0c;是統計學中最核心的分布之一&#xff0c;支撐中心極…

免費AI圖像編輯平臺,最新無損放大技術

軟件介紹 騰訊ARC網頁在線AI圖片處理是一款由騰訊ARC實驗室推出的在線圖像處理工具。憑借騰訊的科技實力&#xff0c;這款工具在圖像處理領域展現了卓越的性能。 功能亮點 這款在線圖像處理工具提供多種功能&#xff0c;包括人像修復、人像摳圖、動漫增強、萬物識別以及…

# 部署深度學習模型:Flask API 服務端與客戶端通信實戰

部署深度學習模型&#xff1a;Flask API 服務端與客戶端通信實戰 在這篇文章中&#xff0c;我們將探討如何使用 Flask 框架部署一個深度學習模型&#xff0c;并通過客戶端與服務端進行通信。我們將通過一個實際的例子&#xff0c;展示如何構建服務端和客戶端&#xff0c;以及如…

物理服務器緊急救援:CentOS系統密碼重置全流程實戰指南

前言 在企業IT運維實踐中&#xff0c;物理服務器密碼丟失是典型的"低概率高風險"事件。某金融科技公司曾因核心服務器密碼遺失導致業務中斷36小時&#xff0c;直接損失超過800萬元。這起真實案例揭示了系統密碼管理的關鍵性——當承載重要業務的物理服務器遭遇密碼丟…

【學習心得】好用算力平臺推薦OpenBayes“貝式計算”

好用是有定義的&#xff0c;我之前用過AutoDL和DAMODEL&#xff08;丹摩智算&#xff09;&#xff0c;我這里就不扯哪些我覺得不關鍵的因素。先不廢話直接給出導航鏈接以及CSDN上的官方主頁&#xff1a; OpenBayes官方網站https://openbayes.com/ OpenBayes官方CSDN賬號主頁h…

政務瀏覽器 一站式首頁功能配置說明

一、政務瀏覽器自定義首頁目的和意義 政務綜合窗口&#xff0c;通常需要打開諸多的業務系統進行受理和查詢&#xff1b;反復的錄入系統地址或者在收藏夾查找系統入口&#xff0c;影響辦事效率。政務瀏覽器為該場景設計了一款可定制的“首頁”。 “首頁”可以根據需要&#xff0…

linux nginx配置訪問目錄,訪問文件直接下載,linux配置nginx直鏈下載

很簡單的一個配置&#xff0c;不指定為啥&#xff0c;別人寫的都好麻煩&#xff0c;而且很多配置了也不行&#xff0c;明明就是幾句話的事啊&#xff0c;唉。 話不多說&#xff0c;直接上配置 worker_processes 1; events {worker_connections 1024; } http {include …

驅動開發硬核特訓 · Day 28(上篇):pinctrl 子系統詳解與實戰分析

&#x1f4da; 技術平臺&#xff1a;嵌入式Jerry&#xff08;B站&#xff09; 一、引言 在嵌入式系統中&#xff0c;SoC 芯片的引腳通常具有多種功能&#xff0c;如 GPIO、UART、I2C、SPI 等。為了在不同的應用場景中靈活配置引腳功能&#xff0c;Linux 內核引入了 pinctrl&am…

圖漾相機——Sample_V2示例程序(待補充)

文章目錄 1.SDK支持的平臺類型1.1 Windows 平臺1.2 Linux平臺 2.Sample_V2編譯流程2.1 Windows環境2.2 Linux環境編譯 3.Sample_V2示例程序測試3.1 ListDevice_v23.2 DepthStream_v23.3 ExposureTimeSetting_v23.4 ForceDeviceIP_v23.5 GetCalibData_v23.6 NetStatistic_v23.7 …

Google-chrome版本升級后sogou輸入法不工作了

背景&#xff1a; 筆記本Thinkpad E450&#xff0c;操作系統Ubuntu 24.04.2 LTS&#xff0c;Chrome瀏覽器版本135.0.7049.114-1&#xff0c;Edge瀏覽器版本131.0.2903.99-1&#xff0c;輸入法Sogou版本4.2.1.145 現象&#xff1a; - **正常場景**&#xff1a;Edge中可通過Ctrl…

7系列 之 OSERDESE2

背景 《ug471_7Series_SelectIO.pdf》介紹了Xilinx 7 系列 SelectIO 的輸入/輸出特性及邏輯資源的相關內容。 第 1 章《SelectIO Resources》介紹了輸出驅動器和輸入接收器的電氣特性&#xff0c;并通過大量實例解析了各類標準接口的實現。 第 2 章《SelectIO Logic Resource…

Ansible 流程控制

條件語句(判斷) 當滿足什么條件時&#xff0c;就執行那些tasks when 當...時ansible獲取主機名 # 主機名中&#xff0c;不包含.沒有區別 ansible_hostname # 包含.只顯示第一個.前面的名字 ansible_fqdn # 包含.顯示完整的主機名不管是shell還是各大編程語言中&#xf…

git命令積累(個人學習)

如何將docx文件不上傳&#xff1f; 創建或編輯 .gitignore 文件 打開 .gitignore 文件&#xff0c;添加以下內容來忽略所有 .docx 文件&#xff1a; *.docx清除已追蹤的 .docx 文件 git rm --cached "*.docx"這將從 Git 倉庫中刪除 .docx 文件&#xff0c;但不會刪…

springboot應用大批量導出excel產生oom處理措施實踐(適用于poieasyexcel)

一、背景&#xff1a; 在某些信息管理場景中&#xff0c;存在大批量導出需求&#xff0c;例如一次性導出10~100w行excel數據&#xff0c;如果不做特殊的處理&#xff0c;很容易導致Out Of Memory&#xff0c;特別是堆內存溢出。 oom復現 例如修改IDEA運行配置&#xff0c;VM…

谷歌在即將舉行的I/O大會之前,意外泄露了其全新設計語言“Material 3 Expressive”的細節

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

深入理解負載均衡:傳輸層與應用層的原理與實戰

目錄 前言1. 傳輸層&#xff08;Layer 4&#xff09;負載均衡1.1 工作層級與核心機制1.2 實現方式詳解1.3 優缺點分析1.4 典型實現工具 2. 應用層&#xff08;Layer 7&#xff09;負載均衡2.1 工作層級與核心機制2.2 實現方式解析2.3 優缺點分析2.4 常用實現工具 3. Layer 4 與…

PyTorch 版本、torchvision 版本和 Python 版本的對應關系

PyTorch 版本、torchvision 版本和 Python 版本的對應關系 在深度學習領域&#xff0c;PyTorch 及其配套庫 torchvision 的使用極為廣泛。但不同版本的 PyTorch、torchvision 與 Python 之間存在嚴格的對應關系&#xff0c;若版本搭配不當&#xff0c;會導致代碼運行出錯…

【hadoop】Hbase java api 案例

代碼實現&#xff1a; HBaseConnection.java package com.peizheng.bigdata;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client…