mounted
で_() =>
_とfunction()
を使用した場合に結果が異なる理由:
_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
}
}
}
_
何か案は?
ライフサイクルフック、メソッドなどを定義するために矢印関数を使用しないでください(例:mounted: () => this.socket++
)。その理由は、矢印関数が親コンテキストをバインドするため、これはVueインスタンスではなく、this.socket
は未定義になります。