Vue 2 / Vue CLI 3:创建异步单文件组件
Vue 2 / Vue CLI 3: Creating async single file components
我用过Vue-CLI 3,告诉它我想用vue-router。它在创建的 routes.js.
中生成这种类型的 Webpack import 语句
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
我接着创建了四个视图。部分视图在内部调用组件。
Home.vue (Home page and default route at '/')
About.vue
Contact.vue
Photos.vue
我在 routes.js
中将“关于”、“联系方式”和“照片”设为异步
import Home from './views/Home.vue';
/* name = named routes */
export const routes = [
{
path: '/',
component: Home,
name: 'home'
},
{
path: '/photo/:id',
// component: Photo,
component: () => import(/* webpackChunkName: "Photo" */ './views/Photo.vue'),
name: 'photo'
},
{
path: '/about',
component: () => import(/* webpackChunkName: "About" */ './views/About.vue'),
// component: About,
name: 'about'
},
{
path: '/contact',
// component: Contact,
component: () => import(/* webpackChunkName: "Contact" */ './views/Contact.vue'),
name: 'contact'
},
{
/* Wildcard path to catch all other paths */
path: '*',
redirect: '/'
}
];
当我进行构建时,Vue CLI 会创建额外的 JS 和 CSS 块(about.[hash].js 等)。然而,当我加载 Home 路由时,这些其他块是根据 Chrome 的 devtools 加载的,但响应选项卡中也没有任何内容。然后,当我访问“关于”、“联系方式”或“照片”路线时,浏览器会加载这些块,但现在响应选项卡中出现了一些内容。
异步是否按预期工作?
谢谢。
我想我可能已经弄清楚我家路线上的这些额外电话是什么。
Webpack 有一个可以打开预取的配置。我想 Vue CLI 或 Webpack 的默认设置是打开预取。
https://webpack.js.org/guides/code-splitting/#prefetching-preloading-modules
https://medium.com/webpack/link-rel-prefetch-preload-in-webpack-51a52358f84c
Vue 论坛上有人向我指出了 Vue-CLI 文档:
https://cli.vuejs.org/guide/html-and-static-assets.html#prefetch
我用过Vue-CLI 3,告诉它我想用vue-router。它在创建的 routes.js.
中生成这种类型的 Webpack import 语句// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
我接着创建了四个视图。部分视图在内部调用组件。
Home.vue (Home page and default route at '/')
About.vue
Contact.vue
Photos.vue
我在 routes.js
中将“关于”、“联系方式”和“照片”设为异步import Home from './views/Home.vue';
/* name = named routes */
export const routes = [
{
path: '/',
component: Home,
name: 'home'
},
{
path: '/photo/:id',
// component: Photo,
component: () => import(/* webpackChunkName: "Photo" */ './views/Photo.vue'),
name: 'photo'
},
{
path: '/about',
component: () => import(/* webpackChunkName: "About" */ './views/About.vue'),
// component: About,
name: 'about'
},
{
path: '/contact',
// component: Contact,
component: () => import(/* webpackChunkName: "Contact" */ './views/Contact.vue'),
name: 'contact'
},
{
/* Wildcard path to catch all other paths */
path: '*',
redirect: '/'
}
];
当我进行构建时,Vue CLI 会创建额外的 JS 和 CSS 块(about.[hash].js 等)。然而,当我加载 Home 路由时,这些其他块是根据 Chrome 的 devtools 加载的,但响应选项卡中也没有任何内容。然后,当我访问“关于”、“联系方式”或“照片”路线时,浏览器会加载这些块,但现在响应选项卡中出现了一些内容。
异步是否按预期工作?
谢谢。
我想我可能已经弄清楚我家路线上的这些额外电话是什么。 Webpack 有一个可以打开预取的配置。我想 Vue CLI 或 Webpack 的默认设置是打开预取。
https://webpack.js.org/guides/code-splitting/#prefetching-preloading-modules
https://medium.com/webpack/link-rel-prefetch-preload-in-webpack-51a52358f84c
Vue 论坛上有人向我指出了 Vue-CLI 文档: https://cli.vuejs.org/guide/html-and-static-assets.html#prefetch