2020社招前端VUE面试题目
2020前端VUE面试题目集锦
年初由于疫情影响导致上家公司不景气,也由于自己一系列的考虑决定裸辞找工作,面试了十多家公司,最终进入了比较心仪的公司,我将这段时间面试所遇见的和VUE先关题目大概做个整合,其他的我会有空持续更新,希望能够帮到现在正在求职或者准备辞职找工作的朋友,废话不多说,直接进入正题。
一. VUE相关问题:
1: Vue的声明周期?
答:Vue一共有八个声明周期,分别为beforeCreate、created、beforeMounted、mounted、beforeUpdate、updated、beforeDestory、destoried;其中面试官一般会问到created和mounted的区别;这二者的区别就是created的时候数据已经加载完成,但是数据没有挂载到页面上,也就是页面还未完成渲染,mounted的时候页面已经完成了渲染,数据展示出来了。
2: 讲一下MVVM?
答:MVVM是Model-View-ViewModel的缩写;其中Model代表的是数据模型,是我们在修改数据和操作业务逻辑的层面;View是UI组件,负责将数据模型转化为UI展示到页面上;ViewModel监听数据的改变还有控制视图行为、处理用户交互,简单讲就是连接Model和View的中间层
在MVVM框架中,数据层和UI层并没有直接的联系,而是通过ViewModel中间层进行交互,当数据层发生改变的时候回导致UI层数据重新渲染改变,而UI层改变的时候数据层的数据也会发生改变,是一个数据双向流的框架,不需要我们人为手动去操作。
3: Vue是数据双向绑定的,说一下原理?
答:这个地方要注意一下,在Vue3.0以前,Vue的双向数据绑定的原理是object.defineProperty();实现数据劫持,劫持到每个属性的setter和getter属性,这个过程是看不到的,是内部进行的,获取数据的时候调用get、改变数据的时候调用set;从而实现一个数据的双向流动;重点:在Vue3.0发布之前这么说是没有问题的,但是在***
Vue3.0以后,数据的双向绑定改成了ES6的Proxy作为观察者机制, 取代了之前的object.defineProperty();之所以取消,其实之前的数据劫持我们在开发的时候也会遇到这个弊端,比如操作数组的时候我们没办法监听到数组的下标给数组设置值,从而无法实现实时响应。解决这个的方法我们之前一般是用这几种方法来监听数组:push()、pop()、shift()、unshift()、splice()、sort()、reverse();这个具体的自己可以再百度去详细了解一下,我们接下来说一下Proxy:Proxy 是ES6中新增的一个特性,可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。这种具体的可以查阅一下文档,其实面试的时候说到这也差不多了。
4: Vue里边组件之间的传值?
答:组件传值分为父传子、子传父、兄弟组件传值;父传子用的props、子传父用$emit传递事件、兄弟组件之间的传值需要一个中间组件eventBus作为过渡,相当于一个中转站,可以用来传递和接收;当然这个只适用于比较小的项目,大型项目还是建议使用VUEX做状态管理。
5: Vue路由实现有哪些方式?
答:vue的路由分为hash模式和history模式,默认是hash模式;就是浏览器中有符号“#”,使用window.location.hash可以读取到;另一种就是history模式,都是用“/”来分隔的,看起来比较美观一些,是HTML5的一个新特性
6: 路由有哪些钩子函数?
答:路由钩子分为全局钩子(router.beforeEach、router.afterEach);比如判断用户的登录转态来跳转页面就要用到这两个钩子来做控制;路由内独享钩子(beforeEnter);组件内钩子(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave);组件内钩子一般用来监听组件跳转时候的各种状态,根据实际需求在这些钩子中做一系列逻辑操作。
7: $route 和 $router 区别?
答: $route 是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。而 $router 是“路由实例”对象包括了路由的跳转方法,钩子函数等。
8: v-if和v-show的区别?
答:v-if是根据条件判断是否渲染到页面上;而v-show是改变display的值为block和none来控制是否展示;这二者如果页面会比较多的用到显示隐藏就使用v-show,如果不经常显示隐藏就用v-if。
9: computed和watch的使用场景和区别?
答:watch擅长处理一个数据影响多个数据,computed擅长处理一个数据受多个数据影响;这里注意二者区别;compute是计算属性,依赖其他属性值,并且computed的值哟缓存,只有它依赖的属性值发生改变,下一次获取computed的值才会重新计算;watch主要起的是‘观察’的作用,类似于某些数据的监听回调,每当监听的数据发生变化时候都会执行回调进行后续操作--------运用场景:当我们需要进行数值计算,并且依赖于其他数据时候,应该使用computed,因为可以利用computed的缓存特性,避免每次获取值得时候都重新计算;------当我们需要在数据变化时候执行异步或者开销比较大的操作时候,应该使用watch,使用watch选项允许我们执行一步操作,限制我们执行该操作的频率,并在我们得到最终的结果前设置中间状态,这些都是计算属性无法做到的。
10: $nextTick的使用?
答:理解,nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单理解就是当数据更新了,在dom中渲染后,自动执行该函数;可以用在created中此时dom没有渲染,直接调用不会起作用
11: vue中的data为什么是一个函数而不是对象?
答:这样做可以防止数据的相互污染,当多个方法调用同一个data数据的时候都是使用的默认值而不会互相干扰
12: 的作用?
答:keep-alive用来缓存组件,避免多次加载相应的组件,减少性能消耗,简单一点来说就是从页面1链接到其他页面后回退到页面1不用在重新执行页面1的代码,只会从缓存中加载之前已经缓存的页面1,这样可以减少加载时间及性能消耗,提高用户体验性。
13: v-for的时候为什么要使用key?
答:这个说起来比较复杂,内容太多,大概思路就是和vue使用的diff算法相关,可以自己去了解一下
14: v-if和v-for的优先级?
答:在vue的官网里边其实有说明,官方是不建议v-for和v-if同时使用的;但是如果同时使用的话,通过代码证实v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中。
15: Vue路由和组件实现懒加载?
答:1–vue异步组件实现懒加载:component:resolve=>(require([‘需要加载的路由的地址’]),resolve),
2–const HelloWorld = ()=>import(‘需要加载的模块地址’);组件的懒加载和路由的类似,也是这两种方式
16: 如何让CSS只在当前组件中起作用,以及如果设置了只在当前组件中起作用的时候如何更改其他组件的样式?
答:在当前组件的 < style > 标签中添加scoped–> < style scoped>;当设置了只在当前组件起作用的时候如果要更改其他组件的样式需要用到样式穿透,样式穿透有两种方式,一种是 >>> ;另一种是添加 /deep/
17: Vue中如何跨域?
答:打开config/index.js,在proxyTable中添写如下代码:
proxyTable: { '/api': { //使用"/api"来代替"http://f.apiplus.c" target: 'http://f.apiplus.cn', //源地址 changeOrigin: true, //改变源 pathRewrite: { '^/api': 'http://f.apiplus.cn' //路径重写 } }
}
使用axios请求数据时直接使用“/api”:
getData () { axios.get('/api/bj11x5.json', function (res) { console.log(res) })
18: vuex有哪几种状态和属性?
答:5种,分别是state=>基本数据、getter=>从基本数据派生的数据、mutation=>提交更改数据的方法,同步、action=>包裹mutations,使之可以异步、modules=>模块化vuex
19: vuex流程?
答:页面通过mapAction异步提交事件到action。action通过commit把对应参数同步提交到mutation。mutation会修改state中对应的值。最后通过getter把对应的值抛出去,在页面的计算属性中,通过mapGetter来动态获取state总的值
以上是我目前大概能想到的一些VUE面试相关题目,后续如果想到其他的还会继续更新,有哪些回答的有错误的地方欢迎大家指出错误,一起沟通,谢谢
2020社招前端VUE面试题目相关推荐
- html5前端实习招聘面试,2018头条春招前端实习生面试题目总结
下午去了头条总部面试前端岗位,挂在二面...自己基础还是有些差,在这里总结一下两轮面试的题目: 一轮面试 typeof实现的原理是什么? https://ecma262.docschina.org/# ...
- 社招前端vue面试题汇总
用过pinia吗?有什么优点? 1. pinia是什么? 在Vue3中,可以使用传统的Vuex来实现状态管理,也可以使用最新的pinia来实现状态管理,我们来看看官网如何解释pinia的:Pinia ...
- 2020.10.29腾讯QQ音乐社招前端电话一面总结
2020.10.29腾讯QQ音乐社招前端电话一面总结 面试官晚上19:16打过来的,聊了44分钟,到八点准时结束.无论过没过,都记录一下面试过程吧,是问了几个大问题,在几个大问题的基础上根据你的回答, ...
- vue面试题目(更新版)
vue面试题目 vue数据 1. 说一下Vue的双向绑定数据的原理 2. 解释单向数据流和双向数据绑定 3. Vue 如何去除url中的 4. 对 MVC.MVVM的理解 5. 介绍虚拟DOM 6. ...
- 杭州中国移动java待遇_【中国移动杭州研发中心Java面试】移动杭研社招java中级面试-看准网...
移动杭研社招java中级面试 移动杭研的面试比较紧凑,一个上午就面完了.到了后先在前台登记,填写个人信息,和党性测试,党性测试有点像以前点政治题,知道不知道随意填了下,前台妹子说这个不要紧的.然后一面 ...
- 牛客网-精华专题-前端校招面试题目合集
前端校招面试题目合集 501 HTML CSS 前端基础 HTML 浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层(structural layer).表示层(presentation ...
- 记一次网易社招前端web开发面试经验
端午前的最后一个工作日接到了网易金融的前端面试电话,面试官一共跟我聊了一个多小时,然后自我感觉面的不好,好多问题自己没回答出来,本以为面试要挂掉的时候,第二天接到了hr说电话面试通过的通知,让我去现场 ...
- 2021秋招嵌入式笔试面试题目汇总
本系列按类别对题目进行分类整理,这样有利于大家对嵌入式的笔试面试考察框架有一个完整的理解. 欢迎关注公众号<嵌入式Linux系统开发>,定期分享硬件.单片机.嵌入式Linux技术文章,支 ...
- 软件测试应届生社招找工作面试会遇到哪些坑?(全网最全避坑指南)
目录 找工作的最佳时间 是否裸辞 我们要做哪些准备工作 准备一段自我介绍 准备一份pdf简历 社招找工作的渠道:内推 找工作的最佳时间 社招找工作的最佳时间是:金三银四.也就是春节后的三月份和四月份. ...
最新文章
- 三巨头对中国人工智能技术的支撑性作用
- (0023)iOS 开发之Mac上MySQL服务的卸载
- 不用鼠标,只用键盘,你还能操作自如吗?
- 倒计时 时间校准android,android倒计时器时间
- 我所知的javascript之prototype
- HighCharts入门
- 太赞了!阿里巴巴AI每天服务全球10亿人
- 利用Docker搭建Redis集群
- endnote x8安装办法
- 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
- c语言中存储点分十进制IP地址
- 【图像处理】海森矩阵(Hessian Matrix)及一个用例(图像增强)
- 2019百度网盘破解不限速
- 如何安装cpolar内网穿透群晖NAS套件
- 如何使谷歌浏览器的下载速度变为快速下载(例如USGS影像这类的大文件)
- schtasks /run 拒绝访问
- 解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
- java字符串in.next_java中 nextString()怎么用
- !!破解灯塔线取点与画线的“难点”
- 学习数据结构的意义和作用
热门文章
- [COCI2017-2018#3] Aron
- flv.js及flv.min.js
- 【数据结构】全 O(1) 的数据结构
- Linux》yum与vim
- pi数据库同步解决方案_转:PI实时数据库 入门和进阶指南
- 怎么本地运行vue dist文件,最简单的方法
- 深圳华为鸿蒙发布会,鸿蒙手机要来了 华为下周举行鸿蒙操作系统发布会
- 农行人工智能机器人安安_农业银行信用卡新卡种,只要有电信号码通通3万!...
- freemarker 应用模板导出Execle(解决生成弹出版本不适合)
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 01字串