이 글에서는 주로 Vue 라우팅의 지연 로딩 구현 방법을 소개합니다. 서로 다른 경로에 해당하는 구성 요소를 서로 다른 코드 블록으로 나눈 다음 해당 경로에 액세스할 때 해당 구성 요소를 로드할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.
구성 요소는 화살표 함수일 수 있으며 동적 가져오기 구문을 사용하여 코드 청크 지점을 정의할 수 있습니다.
네트워크에서 동적으로 로드된 구성 요소 이름을 보려면 webpackChunkName을 추가할 수 있습니다. 동시에 webpack.base.conf.js
code
// router里面的index.js import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'home', /* * 使用动态组件,component可以是一个箭头函数 * @表示src目录 * 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName,同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName * network里面动态加载模块名称 */ component: () => import(/* webpackChunkName: 'home' */'@/pages/Homes') }, { path: '/todos', name: 'Todos', component: () => import(/* webpackChunkName: 'todo' */'@/pages/Todos') } ] })
webpack.base.conf.js里面添加 chunkFilename: '[name].js' output: { path: config.build.assetsRoot, filename: '[name].js', // 需要配置的地方 chunkFilename: '[name].js', publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath }
Analytic
라우팅 지연 로딩을 사용하여 home과 todos라는 두 개의 구성 요소를 생성한 후 npm run dev를 실행하여 프로젝트를 실행하고 네트워크를 열고 새로 고치면 다음을 찾을 수 있습니다. home.js가 로드되면 이름이 위에서 정의한 webpackChunkName과 동일하며 todos를 클릭하면 todo.js가 로드됩니다. 이것은 경로의 지연 로딩을 간단하게 사용하는 것입니다.
main.js의 프로젝트 항목에서 템플릿 구문을 사용하거나 렌더링 기능을 사용할 수 있습니다
new Vue({ el: '#app', router, components: { App }, /* * 这里使用的template的语法 * 也可以使用render函数,直接return一个html结构 */ // template: '<App/>' render() { return ( <p> <App></App> </p> ) } })
원리 및 구현 of jquery의 지연 로딩
vue-lazyload 플러그인을 사용하여 vue에서 이미지를 지연 로드
위 내용은 Vue 라우팅의 지연 로딩 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!