2017-09-24 5 views
0

結果はmounted() =>function()を使用するための異なる理由:ヴュー/ Nuxt - マウントされ:()=> Vsが搭載:関数()

export default { 
    mounted:() => { 
    this.socket = 'something' 
    console.log('mounted') 
    }, 
    methods: { 
    submitMessage() { 
     console.log(this.socket) // undefined 
    } 
    } 
} 

function()使用:

export default { 
    mounted: function() { 
    this.socket = 'something' 
    console.log('mounted') 
    }, 
    methods: { 
    submitMessage() { 
     console.log(this.socket) // something 
    } 
    } 
} 

任意アイデア?

答えて

3

ライフサイクルフック、メソッドなどを定義するために矢印機能を使用しないでください(例:mounted:() => this.socket++)。その理由は、矢印関数が親コンテキストをバインドするため、期待通りVueインスタンスにならず、this.socketは未定義となります。

+0

答えに感謝します。 – laukok

+1

これは良い答えです。しかし、@laukokでは、JavaScriptの矢印関数とキーワードthisバインディングコンセプトについて学び理解する必要があります。それは後で多くのあなたを助けるでしょう。 'console.log(this)'は 'これが何であるかを知るのに役立ちます – fajarhac

関連する問題