Vue + Webpack 学习随手笔记 - 让路由页延迟(按需)加载

发布时间:2019-05-15 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Vue + Webpack 学习随手笔记 - 让路由页延迟(按需)加载脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

clipboard.png

购物商城的Webapp作为例子举例。
下面的导航条很明显是一个带有路由功能的模块,通过配置路由,routerindex.js可以如下配置:

import Vue From 'vue';
import Router from 'vue-router';

import Home from 'pages/home';
import Category from 'pages/category';
import PErsonal from 'pages/personal';
import Cart from 'pages/cart';

Vue.use(Router);

const routes = [
  {
    name: 'home',
    path: '/home',
    component: Home,   
  }, {
    name: 'category',
    path: '/category',
    component: Category
  }, {
    name: 'personal',
    path: '/personal',
    component: Personal
  }, {
    name: 'cart',
    path: '/cart',
    component: Cart
  }, {
    name: 'seArch',
    path: '/search',
    component: Search
  }
];

export default new Router({
  routes
});

但是这样配置有一个问题:在第一次页面加载时(不论加载是打开首页还是分类页),只有一页会显示出来,却加载了四页的资
——为了解决这个问题,延迟(按需)加载则很有必要了,即当用户点击导航条选项时,再触发该页面的加载。这时我们只需要作小小的改动,把路由component配置项的值改为一个函数。比如将开头的

import Home from 'pages/home';
import Category from 'pages/category';
import Personal from 'pages/personal';
import Cart from 'pages/cart';

删除后,改成一个函数声明,这样component就被当成一个函数去调用。

const Home = () => { import('pages/home') };
const Category = () => { import('pages/Category') };
const Personal = () => { import('pages/Personal') };
const Cart = () => { import('pages/Cart') };

或者,直接在各个component处直接写一个箭头函数,这样还少占用几个变量。拿一个举例:

component: () => import('pages/home')

这样,就可以实现路由地址指向页面(这个案例中的页面只有一个组件)的按需加载了。

补充:以上对Webpack要求为 > v2,若你的Webpack版本较低,具体可以参考Vue官方异步组件的写法。上边的例子应该改写为:

component: (resolve) => {
  require(['pages/home'], resolve);
}

你可能还会用到组件动态渲染的知识,参考:https://cn.vuejs.org/v2/api/#...

脚本宝典总结

以上是脚本宝典为你收集整理的Vue + Webpack 学习随手笔记 - 让路由页延迟(按需)加载全部内容,希望文章能够帮你解决Vue + Webpack 学习随手笔记 - 让路由页延迟(按需)加载所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。