2017-09-24 4 views
0

왜 결과 mounted() =>function()를 사용하는 다른을 :뷰/Nuxt 장착 함수()

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