首页 > 其他分享 >Vue 2&3进阶面试题:(第五天)

Vue 2&3进阶面试题:(第五天)

时间:2024-09-23 20:48:51浏览次数:3  
标签:面试题 Vue 进阶 params query 组件 router 路由 history

目录

17.keep-alive

18.$router和$route的区别

19.vue-router路由模式有几种?

20.vue的路由传参param和query的区别


17.keep-alive

keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。keep-alive 是一个抽象组件:它自身不会渲染成一个 DOM 元素,也不会出现在父组件链中。

在组件切换过程中 把切换出去的组件保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性

被包含在keep-alive 中创建的组件,会多出两个生命周期的钩子: activated(组件激活时使用) 与deactivated(组件离开时调用)

如果需要缓存整个项目,直接在app.vue中用keep-alive包裹router-view即可。要缓存部分页面,需要在路由地址配置中,在meta属性中添加一个状态,在app.vue中判断一下包裹的router-view即可

例如有一个商品页面和一个详情页面,这样在两个页面切换的时候就可以用到keep-alive,在切换到详情的时候,把状态保留在内存中,而不是销毁,从而提高一个性能的优化

18.$router和$route的区别

可以在任何组件内通过this.$router访问路由器,也可以通过this.$route访问当前路由
可以理解为:
this.$router相当于一个全局的路有对象,包含了很多属性和对象(比如history对象),任何页面都可以调用其push()、replace()、go()等方法
this.$route表示当前路由对象,每一个路由都会有一个route对象,是一个局部的对象,可以获取对应的name、path、params、query等属性。
简单来说:
$router:是路由操作对象,只写对象
$route:是路由信息对象,只读对象

19.vue-router路由模式有几种?

vue-router 主要使用的有2种路由模式:hash和history

其中,

  • hash: 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载,其显示的网路路径中会有 “#” 号。这是最安全的模式,因为他兼容所有的浏览器和服务器。
  • history : 会去掉路径中的 “#”,依赖于Html5 的history,pushState API,但是history也是有缺点的,不怕前进后退跳转,就怕刷新(如果后端没有准备的话),因为刷新是去请求服务器了,所以需要后台配置来配合history的模式使用.

1.原理不同:

hash模式的实现原理是通过监听hashChange事件来实现的。history模式是通过调用history.pushState方法(或者replaceState) 并且监听popstate事件来实现的。history.pushState会追加历史记录,并更换地址栏地址信息,但是页面不会刷新,需要手动调用地址变化之后的处理函数,并在处理函数内部决定跳转逻辑;监听popstate事件是为了响应浏览器的前进后退功能;

2.表现不同:

hash模式会在地址栏中有#号,而history模式没有;同时由于historv模式的实现原理用到H5的新特性,所以它对浏览器的兼容性有要求(IE >= 10);

3.history模式特点:

history模式开发的SPA项目,需要服务器端做额外的配置,否则会出现刷新白屏(链接分享失效)。原因是页面刷新时,浏览器会向服务器真的发出对这个地址的请求,而这个文件资源又不存在,所以就报404。外理方式就由后端做一个保底映射:所有的请求全部拦截到index.html上。

20.vue的路由传参param和query的区别

  • 声明式导航中:

例如:

/data/:id这个路由匹配/data/1,这里的 id 使用 params
/data?id=1 这里的 id 使用 query

  • 当你使用params方法传参的时候,要在路由后面加参数名,并且传参的时候,参数名要跟路由后面设置的参数名对应。
  • 使用query方法,就没有这种限制,直接在跳转里面用就可以。

注意点:

对于声明式导航来说,params是路由的一部分,必须在路由后面添加参数名。query是拼接在url后面的参数。没有也没关系。params一旦设置路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

  • 对于编程式导航来说,params要和路由的name匹配使用,使用params接受参数,query使用name和path都可以,使用query来接受参数

标签:面试题,Vue,进阶,params,query,组件,router,路由,history
From: https://blog.csdn.net/m0_71805303/article/details/142369140

相关文章

  • Java基于Springboot+Vue的教学资源库设计和实现
    项目说明社会的进步,教育行业发展迅速,人们对教育越来越重视,在当今网络普及的情况下,教学模式也开始逐渐网络化,各大高校开始网络教学模式。本文研究的教学资源库系统基于Springboot框架,采用Java技术和MYSQL数据库设计开发。在系统的整个开发过程中,首先对系统进行了需......
  • Java基于Springboot+Vue的师生共评的作业管理系统设计和实现
    项目说明随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势,针对这个问题开发一个专门适应师生作业交流形式的网站。本文介绍了师生共评的作业管理系统的开发全过程。通过分析企业对于师生共评的作业管理系统的需求,创建了一个计算机管理师生共评的作业管理系统的方......
  • Java基于Springboot+Vue的宠物咖啡馆平台设计和实现
    项目说明随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于SpringBoot的宠物咖啡馆平台的设计与实现的开发全过程。通过分析基于SpringBoot的宠物咖啡馆平台的设计与实现管理的不足,创建了一个计算机管理基于SpringBoo......
  • vue根据页面标签生成图片打印
    安装npminstallhtml2canvas安装npminstallprint-jsimporthtml2canvasfrom'html2canvas';importprintfrom'print-js'<template><div><divid="content-to-convert"style="width:772px;">......
  • vue生成图片打印
    <divid="content-to-convert"style="width:772px;color:#000000;">生成图片内容</div>html2canvas(document.getElementById('content-to-convert'),{scale:2}).then(canvas=>{//html2canvas(document.getEle......
  • 【开题报告】基于django+vue旅游景点预约系统(论文+源码) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,人们对旅游体验的需求日益多样化与个性化。传统的旅游预约方式往往存在信息不对称、预约流程繁琐、效率低下等问题,已......
  • 筛质数(线性筛法--进阶版)(面对大部分都直接ac)
    给定一个正整数 n,请你求出 1∼n中质数的个数。输入格式共一行,包含整数 n。输出格式共一行,包含一个整数,表示 1∼n中质数的个数。数据范围1≤n≤10^6输入样例:8输出样例:4思路:给一个数:将质数筛到的同时,筛去它的倍数,并且该倍数一定是在给定的数内的这样在下次......
  • springboot+vue自驾游信息管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着生活水平的提高和私家车的普及,自驾游已成为现代人追求自由、个性化旅行方式的首选。然而,自驾游过程中涉及的信息繁多且复杂,包括路线规划、景点选择、美食探索、住宿预订等多个方面,传统的手工查询和记录方式已难以满足游客高效、便......
  • springboot+vue智慧外贸平台7l0u0【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球经济的深度融合与信息技术的飞速发展,外贸行业正经历着前所未有的变革。传统外贸模式受限于信息不对称、流程繁琐、效率低下等问题,难以满足日益增长的国际贸易需求。在此背景下,智慧外贸平台应运而生,旨在通过集成大数据、云计算......
  • springboot+vue中药实验管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着中医药事业的蓬勃发展,中药实验作为中医药教育与科研的重要组成部分,其管理水平直接影响着教学质量与科研成果的转化效率。然而,传统的中药实验管理模式多依赖于人工记录与纸质文档,存在信息更新不及时、资源共享难度大、管理流程繁琐......