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

