>  기사  >  웹 프론트엔드  >  uniapp의 초기화를 어디에 둘 것인가?

uniapp의 초기화를 어디에 둘 것인가?

PHPz
PHPz원래의
2023-04-20 09:10:09730검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.