vue中的計算屬性傳參
vue計算屬性傳參
最近很多小伙伴問到,計算屬性怎么做到像普通函數(shù)一樣傳參呢?
針對這個問題
我們來看看下面的示例
<template> ?? ?<p>{{ getCallerName }}</p> ?</template> <script> export default { ?? ?props: { ?? ??? ?callRecord: { ?? ??? ??? ?type: Object, ? ? ? ? ? ? default: () => ({}), ? ? ? ? } ?? ?}, ?? ?computed:{ ?? ??? ?// 獲取名稱 ? ? ? ? getCallerName() { ? ? ? ? ?? ?return 'callerName' ? ? ? ? }, ?? ?} }
這個示例,我們接收一個從父組件傳過來的屬性值 callRecord,對象類型
需求:我們需要根據(jù)接收值中的type字段,去判斷應該解析名稱為“主叫名稱”還是“被叫名稱”
因為計算屬性具有緩存效果,所以我們期望用計算屬性去獲?。ó斎?,過濾器也能使用,方法有很多,這里不用較真)
所以,這里我們就要想辦法把我們的值當做參數(shù)傳進去。
官網(wǎng)并沒解釋計算屬性應該怎么傳值,但是呢,計算屬性都會返回一個值,基于這個條件,我們就想到了另一個只知識點 閉包
閉包:閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù),簡單點說,就是嵌套函數(shù)(關于閉包的解釋和使用,大家可以查閱相關資料,這里就不過多贅述了)
有了思路,我們就開始試試看
<template> ?? ?<p>{{ getCallerName(callRecord) }}</p> ?</template> <script> export default { ?? ?props: { ?? ??? ?callRecord: { ?? ??? ??? ?type: Object, ? ? ? ? ? ? default: () => ({}), ? ? ? ? } ?? ?}, ?? ?computed:{ ?? ??? ?// 獲取名稱 ? ? ? ? getCallerName() { ? ? ? ? ?? ?return callRecord => { ? ? ? ? ? ? ? ? if (callRecord.type === 1 || callRecord.type === 2) return callRecord.callerName; ? ? ? ? ? ? ? ? return callerInfo.callerNumber; ? ? ? ? ? ? }; ? ? ? ? }, ?? ?} }
觀察兩段代碼可以看出,我們在計算屬性里return了一個函數(shù),這個函數(shù)的參數(shù)即我們傳入的值,而內(nèi)部也能直接拿到并使用這個值,這樣就做到了計算屬性傳參(當然,多個參數(shù)也是可行的)
好了,以上就是對計算屬性如何傳參的介紹使用
vue計算屬性傳參,根據(jù)值不同,渲染相應的內(nèi)容
業(yè)務描述
在開發(fā)項目過程中,后臺傳過來一個數(shù)組,根據(jù)類型顯示相應內(nèi)容。
1、可以直接在渲染出用三目表達式選擇渲染內(nèi)容。可可選擇的條件多了,就不適用了,也不利于擴展。
2、采用計算屬性。
<template v-for="(item,index) in languageAddDataArray" > <el-form-item :label=getLanguageType(item.languageType) > ? ? <el-input v-model="item.content" ?auto-complete="off" size="mini"> </el-input> </el-form-item> ?</template> <script> ? ? ? ? ? ?export default { ? ? ? ? ?data () { ? ?languageAddDataArray:[], ? ? ? ? ?}, ? ? ? ? computed:{ ? getLanguageType(){ ? ? ? ? return function (type) { ? ?return type==1?'中文':'英文'; ? ? ? ? } ? ?} ? ? ? ?} ? ? ? ? ? ?} </script>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue3中實現(xiàn)使用element-plus調用message
這篇文章主要介紹了vue3中實現(xiàn)使用element-plus調用message,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09mpvue中配置vuex并持久化到本地Storage圖文教程解析
這篇文章主要介紹了mpvue中配置vuex并持久化到本地Storage的教程詳解,# 配置vuex和在vue中相同,只是mpvue有一個坑,就是不能直接在new Vue的時候傳入store。本文分步驟給大家介紹的非常詳細,需要的朋友參考下吧2018-03-03詳解vue axios用post提交的數(shù)據(jù)格式
這篇文章主要介紹了詳解vue axios用post提交的數(shù)據(jù)格式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08