由于小编正临近面试,就在网上找了一套面试题做准备,其中答案是小编在网上搜索加上自己的理解写上的,如有不符之处,欢迎来讨论。
一、Vue面试题
生命周期函数面试题:
- **什么是vue的生命周期及作用:**vue是一套用于构建用户界面的渐进式框架,被设计为自底向上逐层应用。因此vue的生命周期是指vue实例从创建到销毁的过程。vue所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段用对应的钩子函数实现组件数据管理和DOM渲染俩大功能
- 第一次页面加载会触发哪几个钩子:
** beforeCreate:创建实例对象之前执行,此时数据el;**
** created:创建实例对象之后执行,对象实例el**
beforeMount:页面挂载成功之前执行,数据并没有关联到$el对象上,页面没有显示页面数据;
mounted:页面挂载成功之后执行,数据关联到$el对象上,页面可以显示页面数据;
3、created和mounted的区别:
created:是在模板渲染成HTML前调用,通常用于初始化某些属性值,然后在渲染成视图。
mounted:在模板渲染成HTML后调用,通常是初始化页面后对其HTML中的DOM元素进行操作。
4、vue获取数据在哪个周期函数:
一般在created或beforeRouter里面即可,如需涉及到页面操作,就在mounted即可
vue路由面试题:
1、mvvm框架是什么?:
mvvm是一个实现双向数据绑定的框架,即数据驱动视图,视图更改数据
mvvm主要分成三个部分:
model(数据也叫模型):指数据部分,主要负责业务数据。
viewModel(数据模型):连接视图与数据的数据模型,负责监听model与view的修改,然后实现双向数据绑定
view(视图):是指视图部分,即dom元素,负责视图的处理。
2、vue-router 是什么?它有哪些组件:
vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。通俗来讲,vue-router就是WebApp的链接路径管理系统。
组件:
<router-link :to='' class='active-class'> //路由声明式跳转 ,active-class是标签被点击时的样式
<router-view> //渲染路由的容器
<keep-alive> //缓存组件
3、.active-class 是哪个组件的属性?
是router-link组件的属性,用于做选中样式的切换
4、怎么定义 vue-router 的动态路由? 怎么获取传过来的值?
动态路由的创建,主要是使用 path 属性过程中,使用动态路径参数,以冒号开头。
可以通过param和query俩种方式。分别以this.route.query来获取传过来的动态值
5、vue-router 有哪几种导航钩子?
全局守卫:router.beforeEach
全局解析守卫: router.beforeResolve
全局后置钩子: router.afterEach
单独路由独享钩子: beforeEnter
组件内的钩子: beforeRouteEnter、beforeRouteUpdate (2.2 新增)、beforeRouteLeave
6、router 的区别?