> 웹 프론트엔드 > View.js > Vue3 고급 테마 Composition API를 사용하는 방법

Vue3 고급 테마 Composition API를 사용하는 방법

王林
풀어 주다: 2023-05-21 12:58:12
앞으로
1120명이 탐색했습니다.

Composition API란 무엇입니까

Composition API는 코드의 가독성, 유지 관리성 및 재사용성을 향상시키는 것을 목표로 Vue3에 도입된 새로운 API 스타일입니다. Composition API는 Vue2의 옵션 API와 다릅니다. 이는 구성 요소 내의 논리를 더 작은 구성 가능한 기능 단위로 분해하여 보다 유연하고 효율적인 코드 구성을 달성하는 기능 기반 프로그래밍 방법을 채택합니다.

Vue3에서 Composition API 사용을 권장하는 이유

Vue3에서 Composition API 사용을 권장하는 주된 이유는 구성 요소 로직을 더 효과적으로 구성하고 재사용하기 위한 것입니다.

Vue2에서는 일반적으로 다양한 옵션(예: 데이터, 메서드, 계산 등)을 정의하여 구성 요소의 동작을 정의하는 옵션 API를 사용합니다. 이 접근 방식에는 다음과 같은 몇 가지 단점이 있습니다.

  • 관련 코드가 다양한 옵션에 분산되어 있으므로 대형 구성 요소를 유지 관리하기가 어려워집니다.

  • 대형 구성 요소는 코드를 재사용하기 어렵기 때문에 중복된 로직을 가질 수 있습니다.

  • 어떤 데이터 속성이 수정되었는지, 언제 수정되었는지 추적하는 것이 어려울 수 있습니다.

아래의 간단한 예를 들어보겠습니다. 다음 코드는 데이터를 얻기 위한 로직을 정의합니다.

import { reactive, onMounted } from 'vue'
import axios from 'axios'
export function useData(url) {
  const data = reactive({
    loading: false,
    error: null,
    items: []
  })
  const fetchData = async () => {
    data.loading = true
    try {
      const response = await axios.get(url)
      data.items = response.data
    } catch (error) {
      data.error = error.message
    }
    data.loading = false
  }
  onMounted(() => {
    fetchData()
  })
  return {
    data,
    fetchData
  }
}
로그인 후 복사

이 로직은 데이터 획득 방법, 로딩 상태 처리, 오류 메시지 등의 로직을 다룹니다. 코드 중복을 피하기 위해 여러 구성 요소에서 이 논리를 사용할 수 있습니다.

예를 들어, 컴포넌트에서 다음 로직을 사용하세요:

import { useData } from './useData'
export default {
  setup() {
    const { data } = useData('https://api.example.com/data')
    return {
      data
    }
  }
}
로그인 후 복사

물론 Vue2는 mixin을 통해 위 기능을 달성할 수도 있지만 가독성과 유지 관리성은 Composition API만큼 좋지 않습니다:mixin也能实现上面的功能, 但可读性和可维护性不如Composition API:

const dataMixin = {
  data() {
    return {
      loading: false,
      error: null,
      items: []
    }
  },
  methods: {
    fetchData() {
      this.loading = true
      axios.get(this.url)
        .then(response => {
          this.items = response.data
        })
        .catch(error => {
          this.error = error.message
        })
        .finally(() => {
          this.loading = false
        })
    }
  },
  mounted() {
    this.fetchData()
  }
}
로그인 후 복사

然后在组件中使用:

export default {
  mixins: [dataMixin],
  data() {
    return {
      url: 'https://api.example.com/data'
    }
  }
}
로그인 후 복사

可以看到,使用mixinrrreee 그런 다음 컴포넌트에서 사용하는 경우: rrreee

mixin을 사용하면 공용 로직을 컴포넌트에 혼합할 수 있지만 혼합에는 🎜이름 충돌🎜, 호출 순서와 같은 몇 가지 문제가 있음을 알 수 있습니다. 사이클 후크 등 질문입니다. 🎜

위 내용은 Vue3 고급 테마 Composition API를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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