首页 > 其他分享 >Vue面试题27:为什么要使用路由懒加载?(总结自B站up主‘前端杨村长’视频,仅供自用学习)

Vue面试题27:为什么要使用路由懒加载?(总结自B站up主‘前端杨村长’视频,仅供自用学习)

时间:2022-09-30 11:00:49浏览次数:63  
标签:面试题 27 component up 组件 import UserDetails 路由 加载

  • 这是一道应用题。当打包应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问时才加载对应组件,这样就会更加高效;
// 将
// import UserDetails from "./views/UserDetails"
// 替换为
const UserDetails = () => import("./views/UserDetails")

const router = createRouter({
  // ...
  routes: [{ path: "/user/:id", component: UserDetails }],
})
  • 思路

    • 1.必要性
    • 2.何时用
    • 3.怎么用
    • 4.使用细节
  • 回答范例

    • 1.当打包构建应用时,JavaScript包会变得非常大,影响页面加载。利用路由懒加载我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样会更加高效,是一种优化手段;
    • 2.一般来说,对所有的路由都使用动态导入是个好主意;
    • 3.给component选项配置一个返回Promise组件的函数就可以定义懒加载路由。通常结合webpack提供的动态导入方法import使用:
      {path:'/users/:id',component:()=>import('./views/UserDetails')}
    • 4.结合注释()=>import(/*webpackChunkName:"group-user" */ './UserDetails.vue')可以做webpack代码分块;
      vite中结合rollupOptions定义分块;
    • 5.这里注意其实懒加载的写法是告诉打包器我要异步加载路由,但不是异步组件,路由中不能写异步组件,组件中使用异步组件是没问题的;
  • 知其所以然

    • component(和components)配置如果接收一个返回 Promise 组件的函数,Vue Router只会在第一次进入页面时才会获取这个函数,然后使用缓存数据;

标签:面试题,27,component,up,组件,import,UserDetails,路由,加载
From: https://www.cnblogs.com/Mochenghualei/p/16744177.html

相关文章

  • sync.waitGroup 原理分析
    前言sync的常用包好像都快讲完了,最近几天进度很快啊,希望能多多保持.sync.WaitGroup是为了解决任务编排而出现的,主要就是解决并发-等待问题,因此在真正编写过程中......
  • 使用pip install的时候遇到 *** is not a supported wheel on this platform 问题的解
    在centos7系统安装完python3.8,使用pip3installnumpy报错如下:一直在朝着SSL的方向解决问题,但是无论是换版本重新装openssl还是重装python,都无济于事。后来觉得一个......
  • 学习过程中老师提到的面试题
    publicclassdemo3{publicstaticvoidmain(String[]args){//整数拓展:进制二进制0b十进制八进制0十六进制0xinti=10;......
  • 数据类型扩展及面试题
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用注:String=''字符串''(英文或中文)弱类型语言变量的使用不需要严格符合规定......
  • redis面试题
    一、线程1.1、redis是单线程还是多线程Redis6.0版本以前的单线程是指其网络I/O和键值对读写是由一个线程完成的Redis6.0引入的多线程指的是网络请求过程采用了多线程,而......
  • jupyter
    使用Jupyter可以在本地电脑直接新建和编辑linux服务器的代码,比如python和R,非常方便;本机为:Win10服务器:CentOSLinuxrelease7.3.16111.远程服务器安装Jupyter本人之前......
  • vue实现Popup弹窗
     1.首先我们新建一个Popup.vue,这个组件有一个关闭按钮。这个组件十子组件传值个父组件,通过$emit发送值给父组件。     2.父组件导入使用组件,定义点击事件......
  • 27岁算法工程师,1月无情被辞:想给做算法的提个醒!
    近日,大厂程序员在知乎吐槽“能力很强的同事学历造假,被辞了”,引发热议。“本科211,硕士去了哥伦比亚大学,因为GPA过低,第一学期就被开除。国外黑了两年,造了个假学历回国,竟然还过......
  • ypeScript核心基础面试题与答案
    1、为什么越来越多的企业选择使用TypeScript?2、TypeScript中的原始类型有哪些?3、说说数组在TypeScript中是如何工作的?4、什么是any类型,何时使用?5、什么是void,什么......
  • vue3 在setup 使用provide inject 实现响应式传值
    provide与inject主要用于从父组件向子组件传递数据。在2.0我们通常用props接收来自父组件的参数,但是一个要从父子组件传递到孙子组件,这种情况就得从父组件到子组件,再从子......