Vue面试题整理

vue修饰符&适用场景

vue修饰符大致分为5类表单修饰符事件修饰符鼠标修饰符键盘修饰符v-bind修饰符

路由守卫

全局路由守卫:beforeEach(全局前置守卫),afterEach(全局后置守卫)

作用范围是:所有路由

beforeEach(全局前置守卫)调用:

1、组件初始化时调用;

2、每次路由切换之前调用,A切换至B,B还没有呈现时调用

//全局前置守卫
router.beforeEach((to,from,next) =>{//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象 =》路由B//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象 =〉路由A//第三个参数next(),是否往下执行,执行的话,如果不写的话路由就不会跳转,操作将会终止
})

afterEach(全局后置守卫)调用:

1、组件初始化时调用;

2、每次路由切换之调用,A切换至B,B呈现时调用

应用(设置系统内tab页签) 

router.afterEach((to,from) =>{//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象 =》路由B//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象 =》路由A
}

独享守卫:beforeEnter

进入组件时,被调用

应用:单个组件权限控制


// 该文件专门用于穿件整个应用的路由器
import VueRouter from 'vue-router'// 创建一个路由器
const router = new VueRouter({   routes:[{   name:'home',path:'/home',meta:{// 是否授权isAuth:true,title:'首页',permissionKey:'home',},component: () => import("@/pages/home"), // 组件路径beforeEnter:(to,from,next)=>{const {meta}  = to//  判断是否需要鉴定一下权限if(meta.isAuth){if(localStorage.getItem('permissionList' ).includes(meta.permissionKey)){next()}else{alert(`无权限查看${meta.title}`)}}else{next()}}}
]
})

组件内守卫:beforeRouteEnter,beforeRouteLeave

beforeRouteEnter:进入组件内被调用,

beforeRouteLeave离开组件时,应用:取消组件内一些操作

<template><div>测试组件内守卫</div>
</template>
<script>
export default {data() {return {name:'这是一个组件'}},beforeRouteEnter(to, from, next) {next((vm) => {console.log("thisInBeforeRouteEnterNext", this); // undefinedconsole.log("vm", vm);console.log("dataDataInBeforeRouteEnter  ", vm.name);console.log(vm.getName());});},beforeRouteLeave(to, from, next) {// 离开时},mounted(){},methods:{getName(){return `组件名字${this.name}`}},
}
</script>
<style scoped></style>

应用:菜单(路由)权限

设置系统内tab页签


// 该文件专门用于穿件整个应用的路由器
import VueRouter from 'vue-router'import store from '@/store';// 创建一个路由器
const router = new VueRouter({   routes:[{   name:'home',path:'/home',meta:{// 是否授权isAuth:true,permissionKey:'home',title:'首页'},component: () => import("@/pages/home"), // 组件路径}
]
})router.beforeEach((to,from,next)=>{const {meta}  = to//  判断是否需要鉴定一下权限if(meta.isAuth){if(localStorage.getItem('permissionList' ).includes(meta.permissionKey)){next()}else{alert(`无权限查看${meta.title}`)}}else{next()}}) 
router.afterEach((to) => {store.commit('system/setPageTabs',to); // 把打开页面的放到页面标签数据中
})
export default router

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

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

相关文章

wsl子系统Ubuntu18.04,cuDNN安装

如果觉得本篇文章对您的学习起到帮助作用&#xff0c;请 点赞 关注 评论 &#xff0c;留下您的足迹&#x1f4aa;&#x1f4aa;&#x1f4aa; 本文主要wls子系统Ubuntu18.04安装cuDNN&#xff0c;安装cudnn坑巨多&#xff0c;因此记录以备日后查看&#xff0c;同时&#xff0…

PC市场寒冬,大众还需要PC吗?

PC市场寒冬&#xff0c;大众还需要PC吗&#xff1f; PC&#xff08;个人电脑&#xff09;市场从2016年智能手机兴起之时便进入下滑态势&#xff0c;到2020年疫情发生后&#xff0c;居家办公、在线教育等需求曾给PC市场带来连续六个季度的增长。⁴ 好景不长&#xff0c;进入202…

A Survey on Multimodal Large Language Models

本文是LLM系列的文章之一&#xff0c;主要是讲解多模态的LLM。针对《A Survey on Multimodal Large Language Models》的翻译。 多模态大语言模型的综述 摘要1 引言2 概述3 方法3.1 多模态指令调整3.1.1 引言3.1.2 前言3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2 …

Android Studio实现内容丰富的安卓美食管理发布平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号079 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查…

【网络进阶】Posix API与网络协议栈(三)

文章目录 1. 网络攻击和POSIX API与网络协议栈的关系1.1 网络攻击的基本概念和它们对协议栈的影响1.2 分布式拒绝服务&#xff08;DDoS&#xff09;攻击和网络协议栈1.3 地址解析协议&#xff08;ARP&#xff09;欺骗和POSIX API 2. 网络协议栈的理解和划分2.1 OSI七层模型2.2 …

PostgreSQL使用localhost可以连接,使用IP无法连接

问题描述&#xff1a;PostgreSQL使用localhost可以连接&#xff0c;使用IP无法连接 默认情况下&#xff0c;刚安装完成的 postgresSQL12 无法使用 数据库连接工具&#xff08;如postman&#xff09;连接。需要为其修改配置&#xff0c;开放连接权限。 修改pg_hba.conf 增加…

B063-基础环境-后端环境 Lombok Restful postman swagger

目录 项目介绍需求分析项目架构项目技术架构前后端分离前后端分离开发模式前后端分离优缺点 后端项目搭建-部门模块项目端口规划创建SpringBoot项目流程整合SSM引用属性传值 LombokRestful风格Postman接口测试swagger接口规范其他 项目介绍 本项目是一个&#xff08;Online To…

蓝奥声开发高性价比智能wifi插座进军智能家居

关键词&#xff1a;智能家居、家用插座、WiFi插座、高性价比插座 智能硬件的大潮袭来让智能家居这一并不新鲜的概念再次火热起来&#xff0c;关于智能家居的各种场景的描述给了我们很大的想象空间&#xff0c;然而落到实处真正开始走进生活时却又显得那么骨感&#xff0c;一时间…

使用EXCEL公式编程从网页获取股票数据并保存到excel

共享文件地址 在dataexcel服务器的 /示例/03函数示例/获取股票数据8.fexm 路径 公式脚本 var urlcelltext("URL");//获取单元格ID为URL的单元格内容 var txtWebGet(url); //从网页获取数据 cellvalue("data",txt); //将获取到的数据库保存到ID为DATA的单…

JMeter从数据库中获取数据并作为变量使用

目录 前言&#xff1a; 1、JMeter连接MySQL数据库 2、线程组下新建一个 JDBC Connection Configuration 配置元件 3、实现数据库的查询-单值引用 4、实现数据库的查询-多值引用 前言&#xff1a; 在进行接口测试时&#xff0c;经常需要使用一些动态的数据&#xff0c;例如…

TypeScript学习(一):快速入门

文章目录 一、TypeScript 简介1、TypeScript 是什么&#xff1f;2、TypeScript 与 JavaScript 的区别3、JavaScript 的缺点4、为什么使用 TypeScript 二、TypeScript 开发环境搭建1、下载Node.js2、安装Node.js3、使用npm全局安装TypeScript4、创建一个ts文件5、使用tsc对ts文件…

使用PyMC进行时间序列分层建模

在统计建模领域&#xff0c;理解总体趋势的同时解释群体差异的一个强大方法是分层(或多层)建模。这种方法允许参数随组而变化&#xff0c;并捕获组内和组间的变化。在时间序列数据中&#xff0c;这些特定于组的参数可以表示不同组随时间的不同模式。 今天&#xff0c;我们将深…