Uniapp으로 개발하는 과정에서 this 키워드를 여러 곳에서 사용하게 됩니다. 예를 들어, 메소드 메소드에 정의된 함수 내에서 this는 Vue 인스턴스를 참조합니다. 그러나 컴포넌트의 생성 및 마운트된 라이프사이클 함수에서 이는 컴포넌트 자체를 나타냅니다. 그러면 Uniapp에서 이 키워드를 어떻게 올바르게 사용합니까? 특히 초기화할 때 이것을 어디에 배치해야 할까요?
먼저 유니앱의 초기화 과정을 살펴보겠습니다. 새로운 Uniapp 프로젝트를 생성할 때 시스템은 기본 main.js 파일을 자동으로 생성합니다. 이 파일에서는 다음 코드를 볼 수 있습니다.
import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false const app = new Vue({ ...App }) app.$mount()
보시다시피 이 파일에서는 import 문을 통해 Vue 및 App 구성 요소를 도입하고 Vue 인스턴스 앱을 만들었습니다. 이 예에서는 Vue가 자동으로 현재 Vue 인스턴스를 가리키므로 this 키워드를 수동으로 바인딩하지 않았습니다.
컴포넌트를 작성할 때 이 키워드를 직접 사용하여 Vue 인스턴스의 데이터 및 메서드에 액세스할 수도 있습니다. 예를 들어, 컴포넌트의 메소드 메소드에서 다음과 같이 Vue 인스턴스의 데이터에 액세스할 수 있습니다.
methods: { handleClick() { console.log(this.title) } }
This.title은 Vue 인스턴스의 title 속성을 나타냅니다.
다음으로 컴포넌트의 생성 및 마운트된 라이프사이클 함수에서 이 키워드가 어떻게 사용되는지 살펴보겠습니다.
컴포넌트의 생성된 라이프사이클 함수에서 일부 컴포넌트 초기화 작업을 수행할 수 있습니다. 예를 들어 여기에서 백그라운드 인터페이스를 호출하여 일부 데이터를 얻은 다음 이를 구성 요소의 데이터 속성에 할당하여 구성 요소를 렌더링할 수 있습니다. 여기서는 현재 구성 요소 인스턴스를 나타냅니다. 예:
created() { this.getData() }, methods: { async getData() { const res = await this.$http.get('/api/data') this.list = res.data } }
여기서 this.$http.get 메소드는 Uniapp에 내장된 메소드로, 네트워크 요청을 시작하는 데 사용됩니다. 백그라운드에서 반환되는 데이터를 컴포넌트의 list 속성에 할당하고, 해당 데이터는 {{list}}를 통해 컴포넌트의 템플릿에 표시될 수 있습니다.
컴포넌트의 탑재된 수명 주기 기능에서 렌더링된 DOM 요소에 액세스할 수 있습니다. 여기서는 현재 구성 요소 인스턴스도 나타냅니다. 예를 들어 여기에서 요소의 너비와 높이를 가져와 데이터를 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
mounted() { const element = this.$refs.container const width = element.offsetWidth const height = element.offsetHeight this.width = width this.height = height }
This.$refs.container 여기서 ref가 액세스 구성 요소의 컨테이너인 요소 노드가 있습니다. 요소의 너비와 높이를 가져와서 구성 요소의 너비와 높이 속성에 할당합니다.
요약하자면 Uniapp의 this 키워드는 일반적으로 특정 사용 시나리오에 따라 사용할 수 있는 현재 Vue 인스턴스 또는 구성 요소 인스턴스를 나타냅니다. 컴포넌트의 생성 및 마운트된 라이프사이클 함수에서 이를 사용하는 데에도 문제가 없습니다. 이는 컴포넌트 인스턴스를 참조한다는 점에 유의하세요.
초기화 위치는 컴포넌트의 생성된 라이프사이클 함수에 배치하거나 Vue 인스턴스의 생성된 라이프사이클 함수에 배치할 수 있으며 실제 요구 사항에 따라 구체적인 결정을 내릴 수 있습니다.
위 내용은 uniapp의 초기화를 어디에 둘 것인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!