【前端vue2面试题】2023前端最新版vue模块,高频17问(上)

news2024/9/26 5:18:39

1d43f75f092a4050a8ce31e2d85f6868.gif

🥳博       主:初映CY的前说(前端领域)

🌞个人信条:想要变成得到,中间还有做到!

🤘本文核心:博主收集的关于vue2面试题(上) 

目录

 vue2面试题

1、$route 和 $router`的区别

2、一个.vue文件由几部分组成,分别什么含义

3、scoped作用与原理

4、组件通信有哪些方式

5.为什么data属性是一个函数而不是一个对象

6、vue生命周期分为几个阶段,几个钩子函数,分别写出来

7、axios的请求方式

8、说出$nextTick的作用

9、如何实现组件缓存

10.MVVM与MVC的区别是什么

11.Vue常用修饰符有哪些

12.为什么避免v-for和v-if在一起使用

13.Vue中Key值作用

14.Vue中有时候数组会更新页面,有时候不更新为什么

 15.计算属性与侦听器的区别

16.vue组件传值

17.vue中解决跨域做法


 vue2面试题

1、$route 和 $router`的区别

 $router 是VueRouter的实例,在script标签中想要导航到不同的URL,使用  $router.push方法

 $route为router跳转对象,里面可以获取当前路由的name,path,query,parmas等。


2、一个.vue文件由几部分组成,分别什么含义

由三部分组成:

1.<template>所需要渲染的区域</template>

2.<script>存放引入的资源与业务实现的数据与操作</script>

3.<style>存放界面css的样式</style>

3、scoped作用与原理

作用:组件css作用域,避免子组件内部的css样式被父组件覆盖

  • 默认情况下,如果子组件和父组件css选择器权重相同,优先加载父组件css样式

原理:给元素添加一个自定义属性 v-data-xxxxx, 通过属性选择题来提高css权重值


4、组件通信有哪些方式

  1. 通过 props 传递
  2. 通过 $emit 触发自定义事件
  3. 使用 ref
  4. EventBus 
  5. $parent 或$root 
  6. attrs 与 listeners
  7. Provide 与 Inject
  8. Vuex

5.为什么data属性是一个函数而不是一个对象

根本原因:每次调用产生一个新的地址空间防止数据被污染

我们对象是引用类型数据,处理的是内存当中的地址。当我们引用data多个组件会对data的地址值进行更改。当我们data是函数的话,则会每次引用的时候都会返回一个新的的地址确保我们的数据不会被更改。


6、vue生命周期分为几个阶段,几个钩子函数,分别写出来

  •  初始化阶段:  beforeCreate、 created
  •  挂载阶段 : beforeMount、mounted
  •  更新阶段 : beforeUpdate、updated
  •  销毁阶段:  beforeDestroy、destroyed

具体关于vue生命周期的详情可移步看:

【vue2】vue生命周期的理解_初映CY的前说-CSDN博客


7、axios的请求方式

  • get请求(常用于获取数据)
  • post请求(常用于提交表单数据和上传文件)
  • put请求(对数据进行全部更新)
  • patch请求(修改部分数据)
  • delete请求(常用于删除操作(参数可以放在url上也可以和post一样放在请求体中)

    注意:axios常根据业务需求需要进行二次封装

8、说出$nextTick的作用

Vue 是异步修改 DOM 的并且不鼓励开发者直接接触 DOM,但有时候业务需要必须对数据更改--刷新后的 DOM 做相应的处理,这时候就可以使用 Vue.nextTick(callback)来帮助我们处理更新后的dom数据

9、如何实现组件缓存

使用<keep-alive>标签,作用是创造一个缓存的空间,用于保存组件状态或者避免重新全部渲染。可以快速调用我们的缓存中的数据,从而达到提高访问速度。那常见的列表与购物车为例子,我们常常在这两个区域之间访问,每次点击不需要每次都重新渲染加载一次。

10.MVVM与MVC的区别是什么

MVC : 传统的设计模式。M:model模型,V:View视图,C:controller控制器

MVVM:我们vue所用的设计模式,数据双向绑定,让数据自动地双向同步不需要操作dom。

  • M: model数据模型 (data里定义)      
  •    V: view视图 (页面标签)
  • VM: ViewModel视图模型 (vue.js源码)

11.Vue常用修饰符有哪些

.prevent: 提交事件不再重载页面;

.stop: 阻止单击事件冒泡;

.once: 只执行一次这个事件

.enter:监听键盘enter键

12.为什么避免v-for和v-if在一起使用

Vue 处理指令时,v-for 比 v-if 具有更高的优先级, 虽然用起来也没报错好使, 但是性能不高, 如果你有5个元素被v-for循环, v-if也会分别执行5次.

13.Vue中Key值作用

key值的作用是给元素添加一个唯一的标识符,提高vue渲染性能。当数据变化的时候,vue就会使用diff算法对比新旧虚拟Dom。 如果遇到相同的key值,则复用元素。如果遇到不同的key值则强制更新。

14.Vue中有时候数组会更新页面,有时候不更新为什么

因为vue内部只能监测到数组顺序/位置的改变/数量的改变, 但是值被重新赋予监测不到变更, 可以用 Vue.set() / vm.$set()

这些方法会触发数组改变, v-for会监测到并更新页面:

  • push()

  • pop()

  • shift()

  • unshift()

  • splice()

  • sort()

  • reverse()

这些方法不会触发v-for更新:

  • slice()

  • filter()

  • concat()

 15.计算属性与侦听器的区别

点击跳转两者详解:【vue2】计算属性(computed)与侦听器(watch)详解_

(1)计算属性有缓存机制,侦听器没有

(2)计算属性不支持异步操作, 侦听器支持异步操作

(3)计算属性是一个额外新增的属性, 侦听器只能侦听data中的属性

(4)计算属性有返回值return,侦听器不需要return

(5)计算属性可以监听多个数据变化(计算属性内部用到的数据变化了,就会执行计算属性方法), 侦听器只能侦听一个数据的变化。

16.vue组件传值

父传子

  • 子组件props定义变量
  • 父组件在使用子组件时通过行内属性给props变量传值
  • 特点:单向数据流

子传父

  • 子组件:$emit触发父的事件
  • 父在使用组件用@自定义事件名=父的方法 (子把值带出来)
  • 特点:事件监听

非父子组件:使用vuex


17.vue中解决跨域做法

使用CORS (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。

所谓同源(即指在同一个域)具有以下三个相同点

  • 协议相同(protocol)
  • 主机相同(host)
  • 端口相同(port)

反之非同源请求,也就是协议、端口、主机其中一项不相同的时候,这时候就会产生跨域。

点击可查看:跨域的解决办法 ---CORS方法、同源策列的理解


【接下来会慢慢更新中下篇,如对你有帮助请关注博主喔【爱心】

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

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

相关文章

【Spark分布式内存计算框架——Spark Core】9. Spark 内核调度(上)

第八章 Spark 内核调度 Spark的核心是根据RDD来实现的&#xff0c;Spark Scheduler则为Spark核心实现的重要一环&#xff0c;其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据&#xff0c;根据RDD的依赖关系构建DAG&#xff0c;基于DAG划分Stag…

PVE虚拟机篇-PVE虚拟机安装

安装包下载 前往Proxmox Virtual Environment下载ISO镜像文件&#xff0c;可以直接选择最新版本。 但是如果没有海外线路一般下载十分缓慢&#xff0c;甚至下不动&#xff0c;所以可以去中科大镜像源&#xff1a;中科大Proxmox Virtual Environment 制作U盘启动盘 可以使用…

SpringMVC:拦截器(12)

拦截器1. 拦截器概念2. 拦截器入门案例2.1 环境准备2.2 拦截器开发步骤1: 创建拦截器类步骤2: 配置拦截器类步骤3: SpringMVC添加SpringMvcSupport包扫描和interceptor包扫描步骤4: 简化SpringMvcSupport的编写5 测试3. 拦截器参数解析&#xff08;了解&#xff09;3.1 前置处理…

字节一面:在浏览器地址栏输入一个 URL 后回车,背后发生了什么?

近段时间&#xff0c;有小伙伴面试字节&#xff0c;说遇到一个面试题&#xff1a; 在浏览器地址栏输入一个 URL 后回车&#xff0c;背后发生了什么&#xff1f; 这里尼恩给大家做一下系统化、体系化的梳理&#xff0c;使得大家可以充分展示一下大家雄厚的 “技术肌肉”&#xf…

c# 自定义隐式转换与运算符重载

用户定义的显式和隐式转换运算符 参考代码 用户定义的显式和隐式转换运算符 - 提供对不同类型的转换 | Microsoft Learn 代码例程 using System;public readonly struct Digit {private readonly byte digit;public Digit(byte digit){if (digit > 9){throw new Argumen…

电子科技大学操作系统期末复习笔记(一):操作系统概述

目录 前言 操作系统概述 操作系统的目标与功能 操作系统的定义 目标 功能 操作系统的历史 单用户系统 简单批处理系统 多道批处理系统 分时系统 个人电脑 → 分布式系统 → 互联网时代 → 移动计算时代 → ...... 实时系统 操作系统的基本特征 并发 共享 虚拟…

第一章 PDF语法

第一章 PDF语法PDF ObjectsNull ObjectsBoolean ObjectsNumeric ObjectsName ObjectsString ObjectsArray ObjectsDictionary ObjectsName treesNumber treesStream ObjectsDirect versus Indirect ObjectsFile StructureWhite-SpaceThe Four Sections of a PDFHeaderTrailerBo…

Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)

文章目录1. Sa-Token 介绍2. 登录认证2.1 登录与注销2.2 会话查询2.3 Token 查询3. 权限认证3.1 获取当前账号权限码集合3.2 权限校验3.3 角色校验4. 前后台分离&#xff08;无Cookie模式&#xff09;5. Sa-Token 集成 Redis6. SpringBoot 集成 Sa-Token6.1 创建项目6.2 添加依…

Python 高级编程之网络编程 Socket(六)

文章目录一、概述二、Python socket 模块1&#xff09;Socket 类型1、创建 TCP Socket2、创建 UDP Socket2&#xff09;Socket 函数1、服务端socket函数2、客户端socket函数3、公共socket函数三、单工&#xff0c;半双工以及全双工通信方式的区别四、单工&#xff0c;半双工以及…

MWORKS--MoHub介绍

MWORKS--MoHub介绍1 介绍1.1 简介1.2 功能特征2 快速上手2.1 进入工作台2.2 新建仓库并进入建模空间2.3 建模进入建模工作空间加载模型库新建模型2.4 仿真2.5 后处理曲线、动画2.6 查看模型信息3 使用手册参考1 介绍 1.1 简介 MWORKS.MoHub 支持工业知识、经验、数据的模型化…

电子技术——BJT差分输入对

电子技术——BJT差分输入对 本节我们来讨论BJT差分输入对。 共模输入 下图是BJT差分输入对的基本原理图&#xff1a; 首先我们考虑两端输入共模信号 VCMV_{CM}VCM​ &#xff1a; 此时 vB1vB2VCMv_{B1} v_{B2} V_{CM}vB1​vB2​VCM​ 因为电路的对称结构&#xff0c;所以 i…

LeetCode 热题 C++ 114. 二叉树展开为链表

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#xf…

详细解读503服务不可用的错误以及如何解决503服务不可用

文章目录1. 问题引言2. 什么是503服务不可用错误3 尝试解决问题3.1 重新加载页面3.2 检查该站点是否为其他人关闭3.3 重新启动设备3.3 联系网站4. 其他解决问的方法1. 问题引言 你以前遇到过错误503吗&#xff1f; 例如&#xff0c;您可能会收到消息&#xff0c;如503服务不可…

ccc-Logistic Regression-李宏毅(5)

文章目录Step 1: Function SetStep 2: Goodness of a FunctionStep 3: Find the best functionWhy not Logistic Regression Square ErrorDiscriminative v.s. GenerativeMulti-class Classification(3 Class)Limitation of Logistic RegressionCascading logistic regression…

sklearn降维算法1 - 降维思想与PCA实现

目录1、概述1.1 维度概念2、PCA与SVD2.1 降维实现2.2 重要参数n_components2.2.1 案例&#xff1a;高维数据的可视化2.2.2 最大似然估计自选超参数2.2.3 按信息量占比选超参数1、概述 1.1 维度概念 shape返回的结果&#xff0c;几维几个方括号嵌套 特征矩阵特指二维的 一般来…

pwn手记录题2

fastbin_reverse_into_tcache(2.34) 本题所使用的libc版本为2.34&#xff1b;&#xff08;最新版 libc2.34版本已经没有了所谓的hook函数&#xff0c;甚至exit_hook(实际为某个函数指针)也已经不能够使用&#xff1b;能够利用的手法已经很少了&#xff1b; 高版本glibc堆的几…

进程间通信(上)

进程间通信&#xff08;上&#xff09;背景进程间通信目的进程间通信发展进程间通信分类管道什么是管道匿名管道实例代码简单的匿名管道实现一个父进程控制单个子进程完成指定任务父进程控制一批子进程完成任务&#xff08;进程池&#xff09;用fork来共享管道站在文件描述符角…

C++:类和对象(中)

文章目录1 类的6个默认成员函数2 构造函数2.1 概念2.2 特性3 析构函数3.1 概念3.2 特性4 拷贝构造函数4.1 概念4.2 特性5 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置重载和后置重载6 日期类的实现7 const成员8 取地址及const取地址操作符重载1 类的6个默认成员函…

【C++初阶】十三、模板进阶(总)|非类型模板参数|模板的特化|模板分离编译|模板总结(优缺点)

目录 一、非类型模板参数 二、模板的特化 2.1 模板特化概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 三、模板分离编译 四、模板总结&#xff08;优缺点&#xff09; 前言&#xff1a;之前模板初阶并没有把 C模板讲完&#xff0c;因为当时没有接触…

Java——聊聊JUC中的原子变量类

文章目录&#xff1a; 1.什么是原子变量类&#xff1f; 2.AtomicInteger&#xff08;基本类型原子变量类&#xff09; 3.AtomicIntegerArray&#xff08;数组类型原子变量类&#xff09; 4.AtomicMarkableReference&#xff08;引用类型原子变量类&#xff09; 5.AtomicInteger…