Vue中的計算屬性介紹
1、什么是計算屬性
模板內(nèi)的表達式非常便利,但是設計它們的初衷是用于簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護。
例如:
<div id="app">
{
<!-- -->{ message.split('').reverse().join('') }}
</div>
在這個地方,模板不再是簡單的聲明式邏輯。而是在插值表達式中直接反轉字符串,如果你在多處用到該反轉字符串時,這樣寫就會很麻煩,增加消耗。所以,對于任何復雜邏輯,你都應當使用 計算屬性 。
2.計算屬性的語法
computed{
函數(shù)(){return //必須又返回值。}通常該函數(shù)為get函數(shù)
}
3.舉例
針對上面這個例子,我們可以這樣寫:
<div id="app">
<p>原來的字符串:{
<!-- -->{mes}}</p>
<p>反轉后的字符串:{
<!-- -->{reverseMes}}</p>
</div>
let vm = new Vue({
el:'#app',
data:{
mes:'sayhello'
},
computed: {
reverseMes(){
// 計算屬性中一定要有返回值
return this.mes.split('').reverse().join('')
}
}
})
查看結果:

這里我們在vue實例的 computed 計算屬性中 定義了一個函數(shù),函數(shù)的返回值就是我們需要得到的結果,可以直接在插值表達式中調用,并渲染出來
在舉個例子,通過計算屬性,讓單詞的首字母變大寫:
<div id="app">
<p>原字符串:{
<!-- -->{name}}</p>
<p>首字母大寫:{
<!-- -->{toUpperCase}}</p>
</div>
在vue實例的 computed計算屬性中,自定義我們的計算屬性,通過獲取到字符串第一個字符并把他轉為大寫,在和拆分后的剩余字符連接:
el:"#app",
data:{
name:'tom'
},
// 計算屬性
computed:{
// 自定義 計算屬性
toUpperCase(){
return this.name.charAt(0).toUpperCase().concat(this.name.slice(1,3))
}
}
輸出結果為:

計算屬性還有兩個很實用的小技巧容易被忽略: 一是計算屬性可以依賴其他計算屬性;? 二是計算屬性不僅可以依賴當前Vue 實例的數(shù)據(jù),還可以依賴其他實例的數(shù)據(jù),
例如:
<div id="app1"></div>
<div id="app2">
{
<!-- -->{reverseMes}}
</div>
let vm1 = new Vue({
el:'#app1',
data:{
mes:'hello'
}
})
let vm2 = new Vue({
el:'#app2',
computed: {
reverseMes(){
// 使用實例 vm1中的data數(shù)據(jù)中心的 mes 去做反轉字符串的操作
return vm1.mes.split('').reverse().join('')
}
}
})
查看結果:

實例vm1中的數(shù)據(jù),vm2計算屬性也可以使用
自定義的計算屬性除了可以在插值表達式中使用,還可以在 v-bind: 屬性綁定中使用,用來做一些樣式的變換等等。
到此這篇關于Vue中的計算屬性介紹的文章就介紹到這了,更多相關Vue 計算屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue props實現(xiàn)父組件給子組件傳遞數(shù)據(jù)的方式
Vue中的配置項Props能讓組件接收外部傳遞過來的數(shù)據(jù),本文給大家介紹了Vue props實現(xiàn)父組件給子組件傳遞數(shù)據(jù)的幾種方式,文中有詳細的實現(xiàn)方式,具有一定的參考價值,需要的朋友可以參考下2023-10-10

