LoginSignup
0
0

Vue勉強 算出プロパティ computed

Last updated at Posted at 2024-02-08

(Vue.js 3.1.5を使用)
算出プロパティ computed

computedを使わない場合、

html
    <div id="app">
        <p>{{message.toUpperCase().split('').reverse().join('')}}</p>        
    </div>

13.PNG

computed を利用する場合、

javascript
const app = Vue.createApp({
    data: () => ({
        message: 'Good morning Vue.js!'
    }),
    computed:{
        upperCaseReversedMessage: function(){
            return this.message.toUpperCase().split('').reverse().join('')
        }

    }
})
app.mount('#app')
html
    <div id="app">
        <p>{{message.toUpperCase().split('').reverse().join('')}}</p>
        <p>{{upperCaseReversedMessage}}</p>
        <p>{{upperCaseReversedMessage}}</p>
    </div>

12.PNG

3つとも同じ文字列が表示される。

methodsとの違い。

javascript
const app = Vue.createApp({
    data: () => ({
        message: 'Good morning Vue.js!'
    }),
    computed:{
        upperCaseReversedMessage: function(){
            return this.message.toUpperCase().split('').reverse().join('')
        }
    },
    methods:{
        upperCaseReversedMessageMethod: function(){
            return this.message.toUpperCase().split('').reverse().join('')
        }
    }
})
app.mount('#app')
html
    <div id="app">
        <p>{{upperCaseReversedMessage}}</p> 
        <p>{{upperCaseReversedMessageMethod()}}</p> 
    </div>

14.PNG

1 呼び出し方

methodsの場合は、呼び出すときにかっこ()が必要。
upperCaseReversedMessageMethod()
computed は、プロパティなので、呼び出すときにかっこ()は不要。
upperCaseReversedMessage

以下、その他の違い。

2 getter,setter

computed はプロパティなので、getter,setter両方ある。
methods はメソッドなので、getterだけ。

3 キャッシュ

computed キャッシュあり
methods キャッシュなし

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0