小白学习vuejs-09-路由续章3

80 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

自学前端

  • 前文
    • 本文是我自学vue的一些知识以及个人理解, 希望帮助到一些想要学习前端的小白朋友
    • 介绍本次学习的是路由相关知识
    • 这是基于我学习的笔记而来的文章

认识路由的懒加载

  • 官方给出了解释:

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

  • 官方在说什么呢

    • 首先, 我们知道路由中通常会定义很多不同的页面.
    • 这个页面最后被打包在哪里呢? 一般情况下, 是放在一个js文件中
    • 但是, 页面这么多放在一个js文件中, 必然会造成这个页面非常的大
    • 如果我们一次性从俯卧器请求下来这个页面, 可能需要花费一定的时间, 甚至用户电脑上还出现了短暂空白的情况
    • 如何避免这种情况呢? 使用路由懒加载就可以了
  • 路由懒加载做了什么?

    • 路由懒加载的主要作用就是将路由对应的组件打包成一个个小的js代码块
    • 只有在这个路由被访问到的时候, 才加载对应的组件
  • 懒加载的方式

    • 方式一: 结合Vue的异步组件和Webpack的代码分析

      const Home = resolve => {require.ensure(['../components/Home.vue'], () => {resolve(require('../components/Home.vue'))})};

    • 方式二: AMD写法

      const About = resolve => require(['../components/About.vue'], resolve);

    • 方式三: 在ES6中, 我们可以有更简单的写法来组织Vue异步组件和Webpack的代码分割

      const Home = () => import('../components/Home.vue')

      • 认识嵌套路由
    • 嵌套路由是一个很常见的功能

      • 比如在home页面中, 我们希望通过/home/news和/home/message访问一些内容.
      • 一个路径映射一个组件, 访问这两个路径也会分别渲染两个组件
    • 路径和组件的关系

      /home --> Home

      ​ /home/news --> News

    • 实现嵌套路径有两个步骤

      • 创建对应的子组件, 并且在路由映射中配置对应的子路由
      • 在组件内部使用

后记

  • 希望对对前端有兴趣的朋友们有帮助
  • 这篇文章主要是关于webpack的, 希望大家喜欢
  • vue的作者是中国人尤雨溪, 非常厉害的人