面试题-8

news2024/9/22 5:33:59

1.vue路由是怎么传参的?

params传参

this.$router.push({name:'index'})

this.$route.params.id

路由属性传参

this.$router.push({name:'/index/${item.id}'})

配置路由{path:'/index:id'}

query传参(可以解决页面刷新参数丢失的问题)

this.$router.push({

name:'index',

query:{id:item.id}

})

2.vue的hash模式和history模式有什么区别?

1.hash的路由地址上有#号,history模式没有

2.在做回车刷新的时候,hash模式会加载对应页面,history会报错404

3.hash模式支持低版本浏览器,history不支持,因为是H5新增的API

4.hash不会重新加载页面,单页面应用必备

5.history有历史记录,H5新增了pushState和replaceState()去修改历史记录,并不会立刻发送请求

6.history需要后台配置

3.路由拦截是怎么实现的?

路由拦截 axios 拦截

需要在路由配置中添加一个字段,它是用于判断路由是否需要拦截

{

name:'index'

path:'/index',

component:Index,

meta:{

requirtAuth:true

}

}
router.beforeEach((to,form,next)=>{

if(to.meta.requirtAuth){

if(store.state.token){

next()

}else{

}

}

})

 

4.说一下vue的动态路由

要在路由配置里设置meta属性,扩展权限相关的字段,在路由导航守卫里通过判断这个权限标识,实现路由的动态增加和跳转。

根据用户登录的账号,返回用户角色

前端再根据角色,跟路由表的meta.role进行匹配

把匹配搭配的路由形成可访问的路由

5.如何解决刷新后二次加载路由?

1.window.location.reload()    缺点会出现闪屏的问题

2.matcher

 const  router=createRouter()

export  function rasetRouter(){

const  newRouter=creatRouter()

router.matcher=newRouter.matcher

}

6.vuex刷新数据会丢失吗?怎么解决?

vuex肯定会重新获取数据,页面也会丢失数据

1.把数据直接保存在浏览器缓存里(cookie,localstorage,sessionstorage)

7.computed和watch的区别?

1.computed是计算属性,watch是监听,监听的是data中数据的变化

2.computed是支持缓存的,依赖的属性值发生变化,计算属性才会重新计算,否则用缓存,watch不支持

3.computed不支持异步,watch是可以异步操作

4.computed是第一次加载就监听,watch是不监听

5.computed函数中必须有return  watch不用

8.vuex在什么场景会去使用?属性有哪些?

state   存储变量

getters   state的计算属性

mutations  提交更新数据的方法

actions      和mutations差不多,他是提交mutations来修改数据,可以包括异步操作

modules  模块化vuex

使用场景:

用户的个人信息,购物车模块,订单模块

9.vue的双向数据绑定的原理是什么?

通过数据劫持和发布订阅者模式来实现,同时利用Object.defineProperty()劫持各个属性的setter和getter在数据发生改变的时候发布消息给订阅者,触发对应的监听回调渲染视图,也就是说数据和视图是同步的,数据发生改变,视图跟着发生改变,视图改变,数据也会改变

第一步:

需要observer的数据对象进行递归遍历,包括属性对象的属性,都加上setter和getter

第二步:

compile模板解析指令,把模板中的变量替换数据,然后初始化渲染视图,同时把每个指令对应的节点绑定上更新函数,添加订阅者,如果数据变化,收到通知,更新视图

第三步:

Watcher订阅者是Observer和Compile之间的通信桥梁

10.了解diff算法和虚拟DOM吗?

虚拟DOM,描述元素和元素之间的关系,创建一个JS对象

如果组件内有响应的数据,数据发生改变的时候,render函数会产生一个新的虚拟DOM,这个新的虚拟DOM和旧的虚拟DOM进行对比,找到需要修改的虚拟DOM内容,然后去对应的真实DOM中去修改,diff算法就是虚拟Dom的比对时用的,返回一个patch对象,这个对象的作用就是存储两个节点不同的地方,最后patch里记录的信息进行更新真是DOM

11.vue和jquery的区别是什么?

1.原理不同

vue就是数据绑定:jq是先获取dom再处理

2.着重点不同

vue是数据驱动,jq着重于页面

3.操作不同

4.未来发展不同

12.vuex的响应原理

vuex是vue的状态管理工具

vue中可以直接触发methos中的方法,vuex是不可以的。未来处理异步,当事件触发的时候,会通过dispatch来访问actions中的方法,actions中的commit会触发mutations中的方法从而修改state里的值,通过getter把数据更新到视图

Vue.use(vuex),调用install方法, 通过applyMixin(vue)在任意组件内执行this.$store就可以访问到store对象

vuex的state是响应式的,借助的就是vue的data,把state存到vue实例组件的data中        

13.vue中遍历全局的方法有哪些?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1237947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生入门系列(背景和驱动力)

做任何一件事,或者学习、应用一个领域的技术,莫过于先要想好阶段的目标和理解、学习它的意义是什么?解决了什么问题? 这部分,就尝试来探讨下这个阶段需要理解并达成的目标以及践行云原生的意义在哪里。 1.历程 任何阶…

海辰储能与FlexGen签署储能系统合作协议,加快拓展北美市场

海辰储能宣布与美国储能技术提供商和系统集成商FlexGen达成合作协议。根据协议,海辰储能将为FlexGen供应10GWh的先进储能产品;同时,其将支持FlexGen能源管理系统(EMS)用于总容量为15GWh的项目。 作为协议的一部分,FlexGen还将成为…

Windows 7 连接 Windows 10 共享打印机,Windows 无法连接打印机,操作失败,错误为0x0000011b 的终极解决办法

Windows 7 连接 Windows 10 共享打印机出现错误 0x000001b,建议不要通过卸载Windows10系统的KB5005565安全更新来解决该问题(犹如削足适履),正确的处理方法是手工添加一个本地打印机,本方法是安全可靠的。本文详述了该…

双12电视盒子推荐:测评员解析目前电视盒子哪个最好

电视盒子不需要每月缴费,只需联网就可以收看海量视频资源,游戏、网课、投屏等功能让电视盒子的使用场景更丰富,我每年都会进行数十次电视盒子测评,本期要分享的是双十二电视盒子推荐,全面解析目前电视盒子哪个最好。 一…

【数据结构】链表的八种形态

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 链表的三大"性状" 一.带头链表和不带头链表 头指针与头结点的异同 头指针 头结点 二.循环链表和非循环链表 三.双向链表和单向链表 链表的八大形态 结语…

Amlogic方案遥控器配置(Android11)

配置路线 键值变化路径: ScanCode --> Keycode Lable --> KeyCode Layout --> KeyLable --> Keycode – > KeyEvent 文件映射路径: *.dtsi --> input-event-codes.h --> *.kl --> InputEventLable.h --> kecodes.h --> P…

laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)

背景 重构公司后台项目,使用了dcat-admin,但是dcat-admin有些前端功能不能满足需求。因此引入element-ui进行相关界面的优化 具体流程 1.下载element-ui到本地 2.进入如下目录 打开 node_modules\element-ui\lib 复制index.js 打开 node_modules/ele…

UE4基础篇十五:AI行为树

一、学习完教程后需要掌握知识点 1.1、基础概念: 1.1 行为树:控制并显示AI的决策制定过程 1.2 黑板:可以看做是行为树的创建一些公有变量,外部可以修改行为树黑板的变量值,达到修改行为树状态的逻辑 1.3 环境查询: 获取地图环境中的信息进行一个筛选,查找到所需要的的…

微信公众号上怎么做微信助力活动

微信公众号微信助力活动:一起分享,一起成长 在当今社交媒体时代,人们之间的互动和分享变得越来越重要。微信公众号作为一个广受欢迎的社交平台,为人们提供了一个便捷的分享和交流渠道。而微信助力活动则是通过分享和互动&#xf…

【算法萌新闯力扣】:两句话中的不常见单词

力扣热题:两句话中的不常见单词 开篇 今天是备战蓝桥杯的第19天,今天到目前刷了4道力扣算法题。其中,这道题是对我来说收获最大的一道,让我更熟练地掌握了一些算法题中方法,于是来与大家分享一下。 题目链接: 884.两…

听说90%的人都没搞定手撕协程池这道面试题!

特别的缘分 听说90%的人都没搞定手撕协程池这道面试题! 能看到这篇文章一定是特殊的缘分,请务必珍惜,请详细看看吧,哈哈。 不止上图,最近 Go就业训练营 中不少小伙伴说,面试中碰到了好几次手撕协程池的问题…

向上转型 向下转型 重写 多态 ---java

目录 一. 向上转型 1.1 概念 1.2 语法格式 1.3 动态绑定引入 1.4 重写的引入 1.5向上转型的使用方式 方式一: 直接赋值 方式二: 通过传参,进行向上转型(多态引入) 方法三:通过返回值, 进行向上转型 二. 重写 2.1 概念 2.2 重写的格式 2.3 重写的规则 【重写和重…

QT mysql 数据库线程池 与数据库操作封装

最近事情比较多很久没有写学习笔记了,数据库线程池, 数据库封装,虽说数据库操作有很多不需要写sql 的,ORM 封装的方式去操作数据库。但是从业这些年一直是自己动手写sql ,还是改不了这个习惯。不说了直接上代码。 数据…

YOLOv5 环境搭建

YOLOv5 环境搭建 flyfish 环境 Ubuntu20.04 驱动、CUDA Toolkit、cuDNN、PyTorch版本对应 1 NVIDIA驱动安装 在[附加驱动界]面安装驱动时,需要输入安全密码,需要记下,后面还需要输入这个密码 重启之后有的机器会出现 perform mok manage…

【Java开发】 Springboot集成Mybatis-Flex

1 Mybatis-Flex 介绍 1.1简介 Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper 亮点帮助我们极大的减少了 SQL 编写的工作的同时&#xff…

微信订房功能怎么做_公众号里怎么实现在线订房系统

微信公众号在线订房系统:一键解决您的住宿问题 在当今数字化时代,微信公众号已经成为人们生活中不可或缺的一部分。它提供了各种各样的功能和服务,让我们的生活变得更加便捷和高效。而如今,微信公众号也实现了在线订房功能&#…

SecureCRT -- 使用说明

【概念解释】什么是SSH? SSH的英文全称是Secure Shell 传统的网络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而通过使用SS…

8年老鸟整理,自动化测试-准备测试数据详细...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 大部分类型的测试…

拆解现货黄金隔夜利息计算公式

在讨论现货黄金投资手续费的时候,隔夜利息是经常被忽略的一个方面,但它是投资者不得不考虑的成本因素,特别是在中长线交易的情况下。隔夜利息是根据投资者的持仓数量和交易方向所计算出的利息,如果投资者需要持仓过夜,…

程序员的护城河:技术深度、创新追求与软实力的综合构筑

在IT行业,程序员被形象地比喻为现代社会的护城河,他们以代码为武器,捍卫着系统安全、数据防护以及网络稳定。然而,这位"护城河"究竟是依赖于技术深度、创新追求,还是软实力中的沟通协作等方面呢?…