面试题-8

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.matcherconst  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.hqwc.cn/news/208010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIGC,ChatGPT AI绘画 Midjourney 注册流程详细步骤

AI 绘画,Midjourney完成高清图片绘制,轻松掌握AI工具。 前期准备: ① 一个能使用的谷歌账号 ② 可以访问外网 Midjourney注册 1.进入midjourney官网https://www.midjourney.com 点击左下角”Join the Beta”,就可以注册,第一次使用的小伙伴会弹出提示,只需要点击Acc…

调试接口速度,打印毫秒数,找出慢的地方,优化

方法的最开头写上 $start_time microtime(true); 然后代码行里 dump(All 1: time ’ . (microtime(true) - $start_time)); dump(All 1.2: time ’ . (microtime(true) - $start_time)); 类似这样的最终打印

实验7设计建模工具的使用(三)

二,实验内容与步骤 1. 百度搜索1-2张状态图,请重新绘制它们,并回答以下问题: 1)有哪些状态; 2)简要描述该图所表达的含义; 要求:所绘制的图不得与本文中其它习题一样…

sqli-labs(3)

11. 看到登录框直接or 11 在hackerabar中我们可以看到这里是post传递的数据,在get中用--来注释后面的内容 因为get中#是用来指导浏览器动作的,--代表注释是空格,所以这里用# 之后就和get的一样了 1 order by 2 # order by 3报错 联合注入 …

【C语法学习】26 - strcmp()函数

文章目录 1 函数原型2 参数3 返回值4 比较机制5 示例5.1 示例1 1 函数原型 strcmp():比较str1指向的字符串和str2指向的字符串,函数原型如下: int strcmp(const char *str1, const char *str2);2 参数 strcmp()函数有两个参数str1和str2&a…

从Github登录的双因子验证到基于时间戳的一次性密码:2FA、OTP与TOTP

Github于2023-03-09推出一项提高软件安全标准的措施,所有在Github上贡献过代码的开发人员在年底前必须完成 2FA(Two-factory authentication,双因子认证)。初听此事之时,不以为意,因为自己之前就知道双因子…

Linux 是否被过誉了?

Linux 是否被过誉了? 有些人眼里,电脑这种东西就应该是华丽丽的桌面,手握鼠标戳戳按钮,键盘只为偶尔打打字,仿佛windows式的桌面形式才是理所应当,GUI才是理所应当,x86才是理所应当&#xff0c…

Os-hackNos-3

Os-hackNos-3 一、主机发现和端口扫描 主机发现,靶机地址192.168.80.145 arp-scan -l端口扫描,开放了22和80端口 nmap -P -sV 192.168.80.145二、信息收集 访问80端口 find the Bug You need extra WebSec翻译 找到Bug 你需要额外的网络安全路径扫描 d…

晶振有哪几种?晶振旁边的两个电容起什么作用?

晶振可以分为普通晶振、温补晶振、压控晶振、恒温晶振、差分晶振。 普通晶振通常用作微处理器的时钟器件,主要应用于那些稳定度要求不要的设备中,例如电视机、微波炉。 温补晶振,在晶振内部采取了对晶体频率、温度特性进行补偿,已…

七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门

前言 今天我们花费一个小时快速了解SQLite数据类型、SQLite常用命令和语法。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境 EasySQLite项目源码地址 GitHub地址:https://github.com/YSGStudyHards/EasySQLite&…

杭电oj 2064 汉诺塔III C语言

#include <stdio.h>void main() {int n, i;long long sum[35] { 2,8,26 };for (i 3; i < 35; i)sum[i] 3 * sum[i - 1] 2;while (~scanf_s("%d", &n))printf("%lld\n", sum[n - 1]); }

海外应用速度访问慢?试试这个技术解决方案

在数字化转型的时代&#xff0c;企业需要高效、稳定、安全的网络连接来支撑全球化业务的拓展。然而&#xff0c;在进行海外应用访问时&#xff0c;经常会遇到访问速度慢的问题&#xff0c;因为跨国界的网络通信往往存在延迟和带宽限制等问题。在过去&#xff0c;企业通常会使用…