vue-router—17利用webpack实现懒加载(按需加载)
发布日期:2021-05-06 19:38:34 浏览次数:32 分类:精选文章

本文共 952 字,大约阅读时间需要 3 分钟。

 

 首先用一下视频中的方法

也可以用这种方式

 

(以下是官网原文)

当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

结合 Vue 的和 Webpack 的,轻松实现路由组件的懒加载。

首先,可以将异步组件定义为返回一个 Promise 的工厂函数 (该函数返回的 Promise 应该 resolve 组件本身):

const Foo = () => Promise.resolve({ /* 组件定义对象 */ })

第二,在 Webpack 2 中,我们可以使用语法来定义代码分块点 (split point):

import('./Foo.vue') // 返回 Promise

注意

如果您使用的是 Babel,你将需要添加  插件,才能使 Babel 可以正确地解析语法。

结合这两者,这就是如何定义一个能够被 Webpack 自动代码分割的异步组件。

const Foo = () => import('./Foo.vue')

在路由配置中什么都不需要改变,只需要像往常一样使用 Foo

const router = new VueRouter({  routes: [    { path: '/foo', component: Foo }  ]})

把组件按组分块

有时候我们想把某个路由下的所有组件都打包在同个异步块 (chunk) 中。只需要使用 ,一个特殊的注释语法来提供 chunk name (需要 Webpack > 2.4)。

const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')

Webpack 会将任何一个异步模块与相同的块名称组合到相同的异步块中。

举个栗子

上一篇:vue-router—常见面试t
下一篇:vue-router—16滚动动画

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月15日 17时00分17秒