> 웹 프론트엔드 > JS 튜토리얼 > Vue.js 수명 주기 후크 및 계산된 속성에서 \'this\'가 파악하기 어려운 이유는 무엇입니까?

Vue.js 수명 주기 후크 및 계산된 속성에서 \'this\'가 파악하기 어려운 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-17 18:43:02
원래의
322명이 탐색했습니다.

Why Does

Vue.js 탐구: "this"가 여전히 파악하기 어려운 이유 이해

Vue.js 영역에서 "this"에 액세스하려고 하면 특이한 난관이 발생합니다 수명주기 후크 및 계산된 속성 내에서. Vue 인스턴스에 대한 직접적인 참조처럼 보일 수 있는 내용은 종종 개발자를 당황하게 하고, 당황스러운 오류와 정의되지 않은 값으로 이어집니다.

정의되지 않은 심연 속으로 뛰어들기

화살표 기능을 사용할 때 () => {} "mounted"와 같은 수명 주기 후크 또는 "foo"와 같은 계산된 속성 내에서 "this" 값을 파악하기 어려워지고 콘솔에 "undefine"이 표시되어 실망스럽습니다.

범인: 화살표 함수 및 바인딩된 컨텍스트

화살표 함수는 어휘 범위를 상속합니다. 즉, "this" 바인딩을 유지한다는 의미입니다. 주변 상황. Vue.js 구성 요소의 경우 이 컨텍스트는 Vue 인스턴스 자체와 다릅니다. 결과적으로 "this"는 컴포넌트 메소드에 정의된 화살표 함수 내에서 참조할 때 정의되지 않은 것으로 평가됩니다.

기존 함수 수용

이 문제를 해결하려면 Traditional을 선택하세요. JavaScript 함수 또는 ECMAScript 5 함수 약어입니다. 이러한 접근 방식은 "this"를 포함하는 컨텍스트에 바인딩합니다. Vue.js 구성 요소의 경우 Vue 인스턴스 자체입니다.

일반 함수로 래핑:

mounted: function () {
  console.log(this); // Logs the Vue instance
}
로그인 후 복사

간체 속기 구문:

mounted() {
  console.log(this); // Still logs the Vue instance
}
로그인 후 복사

결론

화살표 함수의 뉘앙스와 "this" 바인딩을 파악하는 것은 Vue의 내부 작동을 이해하는 데 중요합니다. js 구성 요소. 일반 또는 약식 함수 구문을 사용하면 Vue 인스턴스의 컨텍스트 내에서 "this"에 자신있게 액세스할 수 있어 코딩 범위에서 성가신 정의되지 않은 오류를 효과적으로 추방할 수 있습니다.

위 내용은 Vue.js 수명 주기 후크 및 계산된 속성에서 \'this\'가 파악하기 어려운 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿