面试题所有vue

1.说下你常用的Vue指令?
1.v-bind:动态绑定数据
2.v-on:绑定事件监听器
3.v-for:循环指令,可以循环数组或对象
4.v-model:实现双向绑定
5.v-if:根据表达式的真假值,判断是否渲染元素,会销毁并重建
6.v-show:显示隐藏元素,修改元素的display属性

2.`v-if` 和 `v-show`有什么区别?
v-if:DOM操作 效率低 开销大 安全性高  在微信小程序中是wx:if
v-show:样式操作 效率高 开销小 安全性低  在微信小程序中是hidden
共同点是动态控制DOM元素的显示隐藏

3.v-for中key作用?
元素或组件的唯一标识

4.v-if和v-for的优先级?
v-for 优先级比 v-if 高
解决问题可以在外层嵌套<template>(页面渲染不生成DOM节点)在这一层进行v-if判断,然后在内部进行v-for循环

5.双向绑定的原理是什么?
<input :value="data" @input="data=$event.target.value">
绑定原理:元素或组件通过属性接收模型数据的值,通过事件监听将值返回给模型数据

6.vue2的生命周期

1、beforeCreated()

2、created()

3、beforeMount()

4、mounted()

5、beforeUpdate()

6、updated()

7、beforeDestroy()

8、destroyed()

7.vue项目怎么优化
1.简化项目包大小
2.减少不必要的网络请求
3.代码业务逻辑处理优化
4.利用webpack打包工具压缩项目代码
5.静态资源使用懒加载

8.组件之间数据如何传递?
方式一、父组件传递子组件,利用v-bind和props
方式二、子组件传递父组件,利用@事件监听和$emit
方式三、不同页面可以利用路由传参、或者Vuex
方式四、兄弟组件可以利用Vuex进行传参

9. ajax/axios是什么?
ajax 主要利用XHR实现网络请求
axios 是一个基于 promise 封装的网络请求库,它是基于 XHR 进行二次封装
ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装

10.vue中Promise的用法
1.主要用于异步计算
2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3.可以在对象之间传递和操作promise,帮助我们处理队列

11.v-show是怎么用的?
v-show指令用于根据条件展示元素;
不同于v-if的是,带有 v-show 的元素始终会被渲染并保留在 DOM 中,v-show 只是简单地切换元素的 CSS样式;
v-show 不支持 <template> 元素,也不支持 v-else

12.请描述一下什么是Vuex?
什么是Vuex?   

Vuex 是一个专为 Vue.js 应用程序开发的状态管理器,采用集中式存储管理应用的所有组件的状态。也可以理解为vuex主要存储一些全局的变量.
优势和劣势有哪些?
优势:主要就是可以全局共享数据,方法。方便统一管理
劣势:页面刷新后state的变量都会还原清空,不会像cookies一样持久性存储

13.Vuex有哪些属性?
state:可以理解为和data属性一样,存储一些全局公用的变量
getters:类似computed计算属性,也可以在state变量的基础上进行处理并且返回新的值
mutations:主要是定义同步方法,并且推荐state中的变量由该方法进行更改,方便数据跟踪,调用方法:this.$store.commit('xxx', params)
actions:主要是定义异步方法,调用方法:this.$store.dispatch('xxx', params)
modules:定义子模块,每个子模块也会有state、getters、mutations、actions、modules
总结:不建议通过直接赋值的操作改变state变量,推荐使用mutations来改变

14.谈谈你对MVVM模式的理解?
什么是MVVM?

MVVM分为Model、View、ViewModel三者
Model:代表数据模型,数据和业务逻辑都在Model层中定义
View:代表UI视图,负责数据的展示
ViewModel:负责监听Model中数据的改变并且控制视图的更新
总结:MVVM模式简化了界面与业务的依赖,解决了数据频繁更新。MVVM 在使用当中,利用双向绑定技术,使得 Model 变化时,ViewModel 会自动更新,而 ViewModel 变化时,View 也会自动变化

15.var、let、const有什么区别?
var 和 let 用以声明变量,const 用于声明只读的常量
var 声明的变量,不存在块级作用域,在全局范围内都有效,let 和 const 声明的,只在它所在的代码块内有效
let 不允许在相同作用域内,重复声明同一个变量
const 在声明时必须初始化赋值,一旦声明,其声明的值就不允许改变,更不允许重复声明

16.改变this指向的方法有哪些?
通过call()、apply()、bind()改变this指向

17.cookies、sessionStorage、localStorage的区别是什么?
存储大小
cookie:数据大小不能超过4k
localStorage、sessionStorage:数据大小支持5M左右,不同浏览器存储大小不同

生命周期(有效时间)
cookie:需要设置有效期,过期后cookie就会销毁
localStorage:除非被手动清理,否则永久存在
sessionStorage:页面关闭(包括标签选项卡)后就会被销毁

存储形式
三者都是存储字符串类型,复杂对象可以采用json的stringify和parse方法来做处理
安全性
cookie:请求时一般会携带在header中
localStorage、sessionStorage:请求时不会携带

18.数组有哪些常用的方法?
主要常用的方法有
push :向数组的末尾添加新元素
pop():删除数组的最后一项
shift():删除数组的第一项
unshift():向数组首位添加新元素
slice():按照条件查找出其中的部分元素
splice():对数组进行增删改
join():用指定的分隔符将数组每一项拼接为字符串
concat():用于连接两个或多个数组
indexOf():检测当前值在数组中第一次出现的位置索引
lastIndexOf():检测当前值在数组中最后一次出现的位置索引
includes():判断一个数组是否包含一个指定的值
sort():对数组的元素进行排序
reverse():对数组进行倒序
forEach():ES5及以下循环遍历数组每一项
map:ES6循环遍历数组每一项

19.ES6新特性有哪些?
比较常用的有
变量定义:let Const
解构赋值
扩展运算符
Symbol数据类型
Set 和 Map 数据结构
Promise
Class
箭头函数
Proxy拦截
imoprt模块导入

20.js的数据类型有哪些?
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
number,string,boolean,null,undefined,symbol以及未来ES10新增的BigInt(任意精度整数)七类。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值

21.什么是防抖和节流?
防抖
触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
节流
在单位时间内, 只会触发一次事件,如果事件触发后,又重复触发了同一事件,则忽略后面触发的事件,直到第一次事件的计时结束

相关推荐

  1. 面试所有vue

    2024-07-13 10:26:02       23 阅读
  2. vue面试总结

    2024-07-13 10:26:02       54 阅读
  3. vue 高频面试

    2024-07-13 10:26:02       57 阅读
  4. vue3面试

    2024-07-13 10:26:02       43 阅读
  5. Vue面试

    2024-07-13 10:26:02       65 阅读
  6. Vue 3面试

    2024-07-13 10:26:02       54 阅读
  7. Vue 高频面试

    2024-07-13 10:26:02       37 阅读
  8. vue面试

    2024-07-13 10:26:02       40 阅读
  9. Vue 面试(二)

    2024-07-13 10:26:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 10:26:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 10:26:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 10:26:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 10:26:02       69 阅读

热门阅读

  1. 求职学习day2

    2024-07-13 10:26:02       26 阅读
  2. Log4j的原理及应用详解(一)

    2024-07-13 10:26:02       26 阅读
  3. Log4j的原理及应用详解(二)

    2024-07-13 10:26:02       24 阅读
  4. 【uniApp】实现列表下拉触底加载更多功能

    2024-07-13 10:26:02       26 阅读
  5. 【第33章】MyBatis-Plus之预防安全漏洞

    2024-07-13 10:26:02       28 阅读
  6. 【安全设备】上网行为管理

    2024-07-13 10:26:02       26 阅读
  7. 智能小车——底层配置

    2024-07-13 10:26:02       27 阅读
  8. PCIe总线的序

    2024-07-13 10:26:02       26 阅读
  9. 怎么知道服务器100M带宽可以支持多少人访问?

    2024-07-13 10:26:02       27 阅读
  10. [AI 大模型] Meta LLaMA-2

    2024-07-13 10:26:02       28 阅读
  11. Oracle逻辑备份

    2024-07-13 10:26:02       23 阅读