文章目录
- 1、什么是vue?
- 2、什么是单页面?
- 3、说一下对你object.defineproperty的理解?
- 4、说一下vue的生命周期
- 5、说说你对vuex的理解?
- 6、F5刷新丢失页面数据怎么解决?
- 7、谈谈你对vue-router的理解?
- 8、什么是单向数据流?
- 9、什么是虚拟DOM?
- 10、v-if和v-for的区别和冲突?
- 11、谈谈你对keep-alive的理解?
- 12、讲讲你的promise的理解?
- 13、components的作用?
- 14、watch和computed的区别?
- 15、created和mounted的区别?
- 16、父子组件传值的方法?
- 17、说说vue的优缺点?
- 18、你对浏览器渲染的理解?
- 最后 <font color="orange" size="5">以上是博主线下真实面试的题目 ,主要 的技术栈是vue2
1、什么是vue?
vue
是一个 开发前端应用 的轻量级 开发框架
vue
本身采用的是自底向上的逐层构建方式,可以很方便的进行项目整合,提供的单文件组件系统可以很大的提高前端应用的开发效率
扩展
1.1、vue
的两个核心
Vue
框架的两个核心包含:数据驱动、组件化
2、什么是单页面?
SPA(single page application)
仅在Web页面初始化的时候加载相应的HTML
、JavaScript
、Css
。一单页面加载完成,不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现HTML内容的变化,UI与用户的交互,避免用户的重复加载。
优点比较明显:
- 只有一个页面,切换过程非常迅速,提升了用户的使用体验
- 组件化开发方式,可以更好的处理前后端分离开发
- 组件内可以添加业务逻辑,减轻接口服务端的压力
缺点:
- 首屏加载缓慢(路由懒加载)
- 不利于
SEO(搜索引擎优化技术)
(SSR、或者花钱-人民币玩家)
3、说一下对你object.defineproperty的理解?
Object.defineProperty()
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象
Object.defineProperty(obj, prop, descriptor)
4、说一下vue的生命周期
生命周期 描述了一个实例或者组件从
创建、加载、运行到销毁
的整个过程
生命周期钩子/函数,描述了监听各个阶段的生命周期的执行函数,在某个生命周期阶段对应的生命周期钩子会自动执行
beforeCreate()
/created()
实例/组件创建
过程
beforeMount()
/mounted()
实例/组件DOM挂载
过程
beforeUpdate()
/updated()
实例/组件数据更新
过程
beforeDestroy()
/destroyed()
实例/组件销毁
过程
5、说说你对vuex的理解?
Vuex 是一个专为 Vue.js 应用程序开发的
状态管理模式
vuex是一个状态管理工具,主要解决大中型项目的数据共享问题,主要包括
state
,actions
,mutations
,getters
和modules5
个要素。
vuex的优势
:
vuex集中统一管理数据,集中式存储和管理共享的数据,便于开发和维护;
1、vuex中的数据响应式的,只要数据变化,所有使用数据的组件都会自动得到更新;
2、存储在vuex中的数据都是响应式的,能够实时的保持数据和页面的同步(比如localstorage
就是办不到的)
vuex数据传递的过程:
组件
通过dispatch到actions
,actions是异步操作的
,再actions中通过commit到mutations
,mutations再通过逻辑操作改变state
,从而同步到组件
,更新其数据状态
,而getters相当于组件的计算属性
,他是对组件中获取到的数据做提前处理的
,
6、F5刷新丢失页面数据怎么解决?
最先想到的应该就是利用
localStorage/sessionStorage
将数据储存在外部,做一个持久化储存,下面是利用localStorage
存储的具体方案:
方案一
:由于state中的数据是响应式的,而数据又是通过mutation来进行修改,故在通过mutation修改state中数据的同时调用localStorage.setItem()方法来进行数据的存储。
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({