>웹 프론트엔드 >JS 튜토리얼 >Async 구성 요소로 VUE 앱의 성능을 최적화하십시오.

Async 구성 요소로 VUE 앱의 성능을 최적화하십시오.

Lisa Kudrow
Lisa Kudrow원래의
2025-02-14 10:00:13629검색

Async 구성 요소로 VUE 앱의 성능을 최적화하십시오. 키 테이크 아웃

비동기 구성 요소 및 웹 팩의 코드 분할 기능을 VUE 애플리케이션에서 사용하여 앱의 초기 렌더링 후 페이지의 일부를로드하여 초기로드 시간을 줄이고 앱 성능을 향상시킬 수 있습니다. vue는 요청 된 (vue) 구성 요소를 포함하는 약속을 반환하는 기능과 같은 가져 오기 형태 인 동적 가져 오기를 제공하여 표현식을 사용하여 모듈을로드 할 수 있도록합니다. 비동기 구성 요소는 조건부로로드 될 수 있으며, 실제로 필요한 경우에만로드 할 수 있습니다. 사용자가 특정 작업을 수행 할 때 매개 변수를 맞게 설정하여 달성 할 수 있습니다.

. Async 구성 요소가로드하는 데 시간이 걸리거나로드에 실패 할 때 로딩 및/또는 오류 구성 요소를 정의 할 수 있습니다. 로딩 애니메이션 또는 오류 메시지를 표시하는 데 유용 할 수 있습니다.

처음부터 vue.js를 배우고 싶습니까? itepoint 프리미엄을 사용하여 기초, 프로젝트, 팁 및 도구 등을 다루는 Vue 책 전체를 구입하십시오. 월 $ 14.99에 가입하십시오 단일 페이지 애플리케이션은 때때로 초기 부하가 느린 작은 플랙을 겪습니다. 이는 전통적으로 서버가 클라이언트에 큰 자바 스크립트 묶음을 보내기 때문에 화면에 어떤 것도 표시되기 전에 다운로드하고 구문 분석해야하기 때문입니다. 당신이 상상할 수 있듯이, 앱의 크기가 커짐에 따라, 이것은 점점 더 문제가 될 수 있습니다.
    . 운 좋게도, Vue Cli (후드 아래에서 Webpack을 사용하는)를 사용하여 VUE 응용 프로그램을 구축 할 때, 이에 대응하기 위해 취할 수있는 여러 가지 조치가 있습니다. 이 기사에서는 앱의 초기 렌더링 후 페이지의 일부에로드하기 위해 비동기 구성 요소와 웹 팩의 코드 분할 기능을 모두 사용하는 방법을 보여줍니다. 이렇게하면 초기로드 시간을 최소로 유지하고 앱이 더 큰 느낌을 줄 것입니다.
  • 이 자습서를 따르려면 vue.js에 대한 기본적인 이해가 필요합니다. Async 구성 요소 비동기 구성 요소를 만들기 전에 구성 요소를 일반적으로로드하는 방법을 살펴 보겠습니다. 그렇게하려면 매우 간단한 메시지 구성 요소를 사용합니다.
  • 이제 구성 요소를 생성 했으므로 App.Vue 파일에로드하여 표시하겠습니다. 구성 요소를 가져 와서 구성 요소 옵션에 추가하여 템플릿에서 사용할 수 있습니다.
  • 하지만 지금 어떻게됩니까? 응용 프로그램이로드 될 때마다 메시지 구성 요소가로드되므로 초기 부하에 포함됩니다. 이것은 간단한 앱의 큰 문제처럼 들리지 않지만 웹 스토어와 같은 복잡한 것을 고려하십시오. 사용자가 바스켓에 항목을 추가 한 다음 체크 아웃을 원하므로 선택한 항목의 모든 세부 사항이 포함 된 상자를 렌더링하는 체크 아웃 버튼을 클릭하십시오. 위의 방법을 사용하면이 체크 아웃 상자는 초기 번들에 포함되지만 사용자가 체크 아웃 버튼을 클릭 할 때만 구성 요소가 필요합니다. 체크 아웃 버튼을 클릭하지 않고 사용자가 웹 사이트를 탐색 할 수도 있습니다. 즉, 잠재적으로 사용하지 않는 구성 요소를로드 할 때 리소스를 낭비하는 것은 의미가 없습니다.

    . 응용 프로그램의 효율성을 향상시키기 위해 게으른 하중과 코드 분할 기술을 모두 결합 할 수 있습니다. 게으른 하중은 구성 요소의 초기 하중을 지연시키는 것입니다. Medium.com과 같은 사이트에서 게으른로드가 작동하는 것을 볼 수 있습니다. 독자가 기사를 중간에 건너 뛸 수 있으므로 특정 게시물의 모든 이미지를 전면에로드하는 리소스를 낭비 할 필요가 없기 때문에 유용합니다.

    . 코드 분할 기능 Webpack이 제공하는 코드 분할 기능을 사용하면 코드를 다양한 번들로 분할하여 주문시 또는 이후 시점에서 병렬로로드 할 수 있습니다. 특정 코드 조각이 필요하거나 사용될 때만로드하는 데 사용될 수 있습니다.

    동적 가져 오기 운 좋게도 Vue는 동적 가져 오기라는 것을 사용 하여이 시나리오를 수용합니다. 이 기능은 요청 된 (VUE) 구성 요소가 포함 된 약속을 반환 할 새로운 기능과 같은 형태의 가져 오기를 소개합니다. 가져 오기는 문자열을 수신하는 함수이므로 표현식을 사용하여 모듈 로딩과 같은 강력한 작업을 수행 할 수 있습니다. Dynamic Import는 버전 61 이후 Chrome에서 사용할 수 있습니다. 이에 대한 자세한 내용은 Google Developers 웹 사이트에서 확인할 수 있습니다. 코드 분할은 웹 팩, 롤업 또는 소포와 같은 번들러에 의해 처리되며 동적 가져 오기 구문을 이해하고 동적으로 가져 오는 각 모듈에 대해 별도의 파일을 만듭니다. 나중에 콘솔의 네트워크 탭에서 볼 수 있습니다. 그러나 먼저 정적 및 동적 수입과 동적 수입의 차이점을 살펴 보겠습니다.

    이제이 지식을 메시지 구성 요소에 적용하자.

    보시다시피, import () 함수는 구성 요소를 반환하는 약속을 해결합니다. 즉, 구성 요소를 비동기로 성공적으로로드했습니다. DevTools의 네트워크 탭을 살펴보면 비동기 구성 요소가 포함 된 0.js라는 파일이 표시됩니다.

    조건부 로딩 비동기 성분 이제 우리는 비동기 구성 요소에 대한 손잡이를 가지고 있었으므로 실제로 필요할 때만로드하여 전력을 수확합시다. 이 기사의 이전 섹션에서는 사용자가 체크 아웃 버튼을 누르면로드 된 체크 아웃 상자의 사용 사례에 대해 설명했습니다. 그 책을 만들어 봅시다. 프로젝트 설정 Vue Cli가 설치되어 있지 않으면 지금 가져와야합니다.

    다음, CLI를 사용하여 새 프로젝트를 만들어 기본 사전 설정을 선택하면 다음과 같이 표시됩니다.

    프로젝트 디렉토리로 변경 한 다음 스타일링에 사용할 Ant-Design-Vue 라이브러리를 설치하십시오.

    다음으로 SRC/main.js에서 Ant Design 라이브러리를 가져 오십시오

    마지막으로 SRC/Comonents, Checkout.vue 및 Items.vue에서 두 가지 새로운 구성 요소를 만듭니다.

    상점보기 src/app.vue를 열고 다음과 같이 코드를 바꾸십시오.

    여기에는 멋진 일이 없습니다. 우리가하는 모든 일은 메시지를 표시하고 구성 요소를 렌더링하는 것입니다. 다음, SRC/Components/items.vue를 열고 다음 코드를 추가하십시오
    <span><!-- Message.vue -->
    </span><span><span><span><template</span>></span>
    </span>  <span><span><span><h1</span>></span>New message!<span><span></h1</span>></span>
    </span><span><span><span></template</span>></span>
    </span>
    이 파일에서는 현재 구매 한 품목의 양이있는 쇼핑 카트 아이콘을 표시하고 있습니다. 항목 자체는 데이터 속성으로 선언 된 항목 배열에서 가져옵니다. 항목의 구매 버튼을 클릭하면 additem 메소드가 호출되어 해당 항목을 쇼핑 목록 배열로 밉니다. 결과적으로, 이것은 카트의 총계를 증가시킬 것입니다 우리는 또한 페이지에

    checkout
    <span><!-- App.vue -->
    </span><span><span><span><template</span>></span>
    </span>  <span><span><span><div</span>></span>
    </span>    <span><span><span><message</span>></span><span><span></message</span>></span>
    </span>  <span><span><span></div</span>></span>
    </span><span><span><span></template</span>></span>
    </span>
    <span><span><span><script</span>></span><span>
    </span></span><span><span><span>import <span>Message</span> from "./Message";
    </span></span></span><span><span><span>export default {
    </span></span></span><span><span>  <span>components: {
    </span></span></span><span><span>    <span>Message
    </span></span></span><span><span>  <span>}
    </span></span></span><span><span><span>};
    </span></span></span><span><span></span><span><span></script</span>></span>
    </span>
    버튼을 추가했으며, 이것이 흥미로워지기 시작하는 곳입니다.

    사용자 가이 버튼을 클릭하면 매개 변수 표시가 참으로 설정됩니다. 이 진정한 값은 조건부 비동기 구성 요소를 조건부로드 할 목적으로 매우 중요합니다. 아래의 몇 줄은 v-if 문을 찾을 수 있습니다. V-IF 문은 쇼가 true로 설정 될 때만

    의 내용 만 표시됩니다. 이
    태그에는 체크 아웃 구성 요소가 포함되어 있으며 사용자가 체크 아웃 버튼을 누르면로드하려는 경우에만로드하려고합니다. 체크 아웃 구성 요소는 섹션의 구성 요소 옵션에 비동기로로드됩니다. 여기서 멋진 점은 V- 바인드 문을 통해 구성 요소에 인수를 전달할 수도 있다는 것입니다. 보시다시피 조건부 비동기 구성 요소를 만드는 것은 비교적 쉽습니다. SRC/Components/Checkout.Vue의 체크 아웃 구성 요소에 대한 코드를 빠르게 추가하겠습니다.
    <span>// static import
    </span><span>import <span>Message</span> from "./Message";
    </span>
    <span>// dynamic import
    </span><span>import("./Message").then(<span>Message</span> => {
    </span>  <span>// Message module is available here...
    </span><span>});
    </span>
    여기서 우리는 쇼핑 목록으로받는 소품을 반복하고 화면에 출력합니다. NPM Run Serve 명령을 사용하여 앱을 실행할 수 있습니다. 그런 다음 http : // localhost : 8080/로 이동하십시오. 모든 것이 계획에 따라 진행되면 아래 이미지에 표시된 내용과 같은 것을 볼 수 있습니다.

    <span><!-- App.vue -->
    </span><span><span><span><template</span>></span>
    </span>  <span><span><span><div</span>></span>
    </span>    <span><span><span><message</span>></span><span><span></message</span>></span>
    </span>  <span><span><span></div</span>></span>
    </span><span><span><span></template</span>></span>
    </span>
    <span><span><span><script</span>></span><span>
    </span></span><span><span><span>import <span>Message</span> from "./Message";
    </span></span></span><span><span><span>export default {
    </span></span></span><span><span>  <span>components: {
    </span></span></span><span><span>    <span><span>Message</span>: () => import("./Message")
    </span></span></span><span><span>  <span>}
    </span></span></span><span><span><span>};
    </span></span></span><span><span></span><span><span></script</span>></span>
    </span>
    네트워크 탭을 열어서 매장을 클릭 해보면 체크 아웃 구성 요소가

    checkout 버튼을 클릭 할 때만로드됩니다. 당신은 또한 github 에서이 데모의 코드를 찾을 수 있습니다. . 로딩 및 오류 구성 요소 가있는 비동기 Async 구성 요소가로드에 시간이 걸리거나로드하지 않는 경우에 대한 로딩 및/또는 오류 구성 요소를 정의 할 수도 있습니다. 로딩 애니메이션을 보여주는 것이 유용 할 수 있지만, 이것은 다시 애플리케이션이 느려집니다. 비동기 구성 요소는 작고 빠르려면 적재해야합니다. 예는 다음과 같습니다.

    결론 비동기 구성 요소를 만들고 구현하는 것은 매우 쉽고 표준 개발 루틴의 일부가되어야합니다. UX 관점에서, 사용자의 관심을 유지하기 위해 가능한 한 초기로드 시간을 줄이는 것이 중요합니다. 이 튜토리얼이 자신의 구성 요소를 비동기로로드하고 구성 요소의 부하를 지연시키기 위해 조건을 적용하는 데 도움이 되었기를 바랍니다. vue async 구성 요소에 대한 자주 질문 vue async 구성 요소를 사용하면 어떤 이점이 있습니까?

    Vue Async 구성 요소는 Vue.js의 강력한 기능으로 개발자가 구성 요소를 비동기로로드 할 수 있습니다. 이는 구성 요소가 필요할 때만로드되므로 응용 프로그램의 성능을 크게 향상시킬 수 있습니다. 이는 모든 구성 요소를 한 번에로드하면 응용 프로그램을 늦출 수있는 대규모 응용 분야에 특히 유리합니다. 구성 요소를 비동기로로드하면 응용 프로그램에서 더 나은 사용자 경험을 제공하여 응용 프로그램이 빠르고 반응이 좋지 않도록 할 수 있습니다.

    내 애플리케이션에서 VUE Async 구성 요소를 구현하려면 어떻게합니까? 귀하의 응용 프로그램은 비교적 간단합니다. vue.component 메소드를 사용하고 공장 기능에서 약속을 반환 할 수 있습니다. 약속은 구성 요소 정의로 해결해야합니다. 기본 예는 다음과 같습니다.
    <span><!-- Message.vue -->
    </span><span><span><span><template</span>></span>
    </span>  <span><span><span><h1</span>></span>New message!<span><span></h1</span>></span>
    </span><span><span><span></template</span>></span>
    </span>
    vue.component ( 'async-example', function (resolve, devrect) {

    settimeout (function () { // 컴포넌트 정의를 콜백을 해결합니다. resolve ({ 템플릿 : '
    나는 비동기입니다!
    '}) 이 예에서는 구성 요소입니다. 1 초 후에 비동기로로드됩니다.

    vue 라우터와 함께 Vue Async 구성 요소를 사용할 수 있습니까?

    예, Vue 라우터와 함께 Vue Async 구성 요소를 사용할 수 있습니다. 실제로 Vue Router는 구성 요소 분할 및 비동기 로딩을 지원합니다. 경로를 정의 할 때 구성 요소를 직접 제공하는 대신 구성 요소로 해결되는 약속을 반환하는 함수를 제공 할 수 있습니다. 이를 통해 구성 요소가 필요할 때만 부품을로드하여 응용 프로그램의 성능을 향상시킬 수 있습니다. VUE Async 구성 요소와 일반 VUE 구성 요소의 차이점은 무엇입니까?

    VUE Async 구성 요소와 일반 VUE 구성 요소의 주요 차이점은로드되는 방법입니다. 일반 VUE 구성 요소는 동기식으로로드되므로 응용 프로그램이 시작될 때 한 번에로드됩니다. 반면에 VUE 비동기 성분은 비동기 적으로로드되므로 필요할 때만로드됩니다. 이것은 특히 많은 구성 요소가있는 대규모 애플리케이션의 경우 응용 프로그램의 성능을 크게 향상시킬 수 있습니다.

    VUE Async 구성 요소를 사용할 때 오류를 처리하는 방법?

    vue async 구성 요소를 사용할 때 처리 할 수 ​​있습니다. vue.component 메소드에 두 번째 함수를 제공하여 오류. 약속이 거부되면이 기능이 호출됩니다. 예는 다음과 같습니다.

    vue.component ( 'async-example', function (resolve, devrect) { settimeout (function () { // 컴포넌트 정의를 콜백

    resolve ({ 템플릿 : '

    나는 비동기!
    ' 콘솔입니다. 오류 (이유) })
    이 예에서는 약속이 거부되면 오류가 콘솔에 로그인됩니다.
    vue async 구성 요소를 vuex와 함께 사용할 수 있습니까?

    예, vuex와 함께 Vue Async 구성 요소를 사용할 수 있습니다. Vuex는 vue.js의 주 관리 라이브러리이며 Vue Async 구성 요소와 잘 작동합니다. 일반 구성 요소와 마찬가지로 비동기 구성 요소에서 동작을 파견하고 돌연변이를 커밋 할 수 있습니다.
    VUE Async 구성 요소를 테스트하려면 어떻게해야합니까? VUE Async 구성 요소 테스트 일반 VUE 구성 요소 테스트와 유사합니다. . Vue Test Utils 및 Jest와 같은 라이브러리를 사용하여 구성 요소에 대한 단위 테스트를 작성할 수 있습니다. 그러나 Async 구성 요소가 비동기로로드되므로 테스트에서 Async/Await을 사용하여 어설 션을 수행하기 전에 구성 요소를로드 할 때까지 기다려야 할 수도 있습니다.
    Vue Cli와 함께 Vue Async 구성 요소를 사용할 수 있습니까?
    예, Vue Cli와 함께 Vue Async 구성 요소를 사용할 수 있습니다. Vue Cli는 스캐 폴딩 Vue.js 프로젝트를위한 명령 줄 도구이며 Async 구성 요소를 지원합니다. vue.component 메소드를 사용하여 Vue CLI 프로젝트에서 Async 구성 요소를 정의 할 수 있습니다.
    VUE Async 구성 요소의 성능을 최적화하려면 어떻게해야합니까?
    성능을 최적화하는 몇 가지 방법이 있습니다. vue 비동기 구성 요소. 한 가지 방법은 코드 분할을 사용하는 것입니다. 이는 코드를 주문시로드 할 수있는 작은 청크로 코드를 분할 할 수 있습니다. 또 다른 방법은 게으른 하중을 사용하는 것입니다. 이로 인해 부품이 필요할 때만 부품을로드 할 수 있습니다. 브라우저가 유휴 상태 일 때 배경에 부품을로드하기 위해 프리 페치 및 프리로드를 사용할 수도 있습니다. nuxt.js와 함께 vue async 구성 요소를 사용할 수 있습니까? nuxt.js는 vue.js 애플리케이션을 구축하기위한 프레임 워크이며 비동기 구성 요소에 대한 지원이 내장되어 있습니다. vue.component 메소드를 사용하여 nuxt.js 프로젝트에서 Async 구성 요소를 정의 할 수 있습니다.

위 내용은 Async 구성 요소로 VUE 앱의 성능을 최적화하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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