>웹 프론트엔드 >View.js >Vue Router를 사용하여 경로의 지연 로딩 및 사전 로딩을 구현하는 방법은 무엇입니까?

Vue Router를 사용하여 경로의 지연 로딩 및 사전 로딩을 구현하는 방법은 무엇입니까?

王林
王林원래의
2023-07-21 20:12:242586검색

Vue Router를 사용하여 경로의 지연 로딩 및 사전 로딩을 구현하는 방법은 무엇입니까?

Vue Router는 Vue.js의 공식 라우팅 관리자입니다. 단일 페이지 애플리케이션(SPA)에 매우 중요한 프런트 엔드 라우팅 기능을 구현하는 데 도움이 될 수 있습니다. 실제 프로젝트에서는 페이지가 늘어나고 기능이 풍부해짐에 따라 Lazy Loading과 Route Preloading이 최적화 방법으로 많이 사용됩니다. 이 기사에서는 Vue Router를 사용하여 이 두 가지 기능을 구현하는 방법을 소개합니다.

1. 라우팅의 지연 로드
일반적인 상황에서는 브라우저에 처음 로드할 때 전체 애플리케이션 코드가 다운로드되도록 모든 페이지 구성 요소를 JavaScript 파일로 패키징해야 합니다. 그러나 애플리케이션이 점점 더 복잡해지면 이 JavaScript 파일의 크기가 점점 커지므로 초기 로딩 시간이 길어집니다. 이 문제를 해결하려면 경로의 지연 로딩을 사용할 수 있습니다.

  1. 지연 로딩 경로 생성
    Vue Router를 사용하여 경로를 생성할 때 Vue의 비동기 구성 요소 기능을 사용하여 지연 로딩을 구현할 수 있습니다. 예를 들어 "Home"이라는 페이지 구성 요소가 있습니다. 다음과 같이 지연 로딩 라우팅을 정의할 수 있습니다.
const Home = () => import('./views/Home.vue')

const router = new VueRouter({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    }
  ]
})
  1. 웹팩 구성
    지연 로딩 라우팅을 사용할 때 웹팩의 코드 분할 기능을 사용하여 비동기 구성 요소를 분리해야 합니다. 파일. 구성 파일에는 다음 구성이 필요합니다.
module.exports = {
  // ...
  output: {
    // ...
    chunkFilename: 'js/[name].[chunkhash].js'
  },
  // ...
  optimization: {
    splitChunks: {
      chunks: 'async',
      minSize: 30000,
      maxSize: 0,
      minChunks: 1,
      maxAsyncRequests: 5,
      maxInitialRequests: 3,
      automaticNameDelimiter: '~',
      cacheGroups: {
        vendors: {
          test: /[\/]node_modules[\/]/,
          priority: -10
        },
        default: {
          minChunks: 2,
          priority: -20,
          reuseExistingChunk: true
        }
      }
    }
  }
}

이 구성 후에 webpack은 자동으로 비동기 구성 요소를 별도의 파일로 패키징하고 적절한 해시 값을 파일 이름으로 추가하여 비동기 로딩을 수행합니다.

2. 라우팅 미리 로드(Preloading)
라우팅 지연 로드에서는 페이지 구성 요소가 액세스될 때만 로드되며 각 페이지는 한 번만 로드됩니다. 그러나 일부 시나리오에서는 후속 방문 시 응답 속도를 향상시키기 위해 애플리케이션 초기화 중에 일부 페이지 구성 요소의 코드를 로드해야 할 수도 있습니다. 이를 위해서는 라우팅의 사전 로드 기능을 사용해야 합니다.

  1. 웹팩 구성
    먼저 웹팩 구성 파일에서 매직 코멘트를 사용해 미리 로드할 구성 요소를 지정해야 합니다. 예: magic comment来指定要预加载的组件。例如:
const Home = () => import(/* webpackPreload: true */ './views/Home.vue')
  1. 配置路由
    在创建路由时,可以使用webpackChunkName
  2. const router = new VueRouter({
      routes: [
        {
          path: '/',
          name: 'Home',
          component: () => import(/* webpackChunkName: "home" */ './views/Home.vue')
        },
        // ...
      ]
    })

라우팅 구성

경로를 생성할 때 webpackChunkName 옵션을 사용하여 쉽게 구별할 수 있도록 미리 로드된 페이지 구성 요소의 이름을 지정할 수 있습니다. 예:


rrreee

이런 방식으로 애플리케이션이 초기화되면 Vue Router는 자동으로 홈 구성 요소를 미리 로드하고 페이지 구성 요소 코드를 미리 로드합니다.

요약

Vue Router의 지연 로딩 및 사전 로딩 기능을 사용하여 프런트엔드 애플리케이션 성능을 효과적으로 최적화할 수 있습니다.

🎜실제 프로젝트에서는 페이지 구성 요소의 수와 복잡성에 따라 지연 로딩 또는 사전 로딩을 유연하게 선택하여 애플리케이션의 로딩 속도와 사용자 경험을 향상시킬 수 있습니다. 🎜🎜이 기사가 Vue Router를 사용하여 경로 지연 로딩 및 사전 로딩을 구현하는 방법을 이해하는 데 도움이 되기를 바랍니다. 여러분 모두의 학업에 행운이 있기를 바랍니다! 🎜

위 내용은 Vue Router를 사용하여 경로의 지연 로딩 및 사전 로딩을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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