vue常见面试题

1、什么是MVC和MVVM

MVC分为三块 :model view 和controller
MVVM分为三块:model view 和view-model
在vue中怎么实现数据的双向绑定,使用watch观察者模式监听对象数据的改变触发页面渲染
Object.defineProrotype()

什么是面向对象:面向对象的三大基本特征:封装、继承、多态

2、你用的的Vue是哪一个版本,他和其他版本的区别?

2.多版本的
加入了虚拟dom,还加入了一些新的语法
在js对象和真实dom树之间存在的一个虚拟对象,所有的dom树节点都是根据这个虚拟dom实现生成的
在虚拟dom向真实的dom树转换之前会根据diff算法动态的计算需要更改的标签,进行替换操作
虚拟dom优势: 可以针对不同的终端平台输出不同的页面展示节点比如: 网页、微信小程序、原生应用
   在生成的时候只需要修改render方法渲染出不同的节点标签即可
浏览器生成dom树的时候非常消耗资源,因此引入虚拟dom概念
通过一定的算法优化之后能够非常快捷的根据数据生成真实的HTML节点
现在vue和react都是使用的虚拟dom
虚拟dom就是通过一个对象描述一个html结构:
通过js 写一个循环吧节点生成在页面上
需要修改某一个节点的值 可以直接修改对象上的属性
然后调用render方法重新渲染页面
渲染的时候会对虚拟dom中的几点作比对 只重新渲染

3、Vue 的组件生命周期

那张图
常用的生命周期:
created
moundted:是可以在这个钩子函数中获取当前组件的dom元素(this.$el)

4、Vue组件传值

父子组件
		父传子使用props
		子传父使用事件派发
非相关组件
		事件总线,我们使用一个空白的vue实例作为一个桥梁,所有的事件派发和监听都在此对象上进行vuex

5、Vue-Router 使用,路由守卫
什么是嵌套路由?
路由守卫
beforeEach表示每一个路由跳转之前执行,我们可以通过它判断用户是否登录
路由元标签 meta
路由传参 query/params
动态路由
路由跳转

6、Vue项目的上线流程

1.使用脚手架搭建项目
2.写静态页面
3.调用服务器端接口版数据动态化
4.build上线 router-link、编程式跳转

7、Vuex

是一个全局状态管理工具,把所有的state数据存储在一棵单一的状态树上
使用mutations实现数据的改变
如果是异步操作需要dispatch派发一个action,然后在action中commit一个mutation改变数据

8、什么是单页面应用程序?

spa 是只有一个HTML页面的项目,所有的跳转和功能控制都在这一个页面中进行,单页面应用程序最怕刷新

多页面应用程序,一般传统方式开发的网站都是有多个页面组成的

9、常见的Vue指令都有哪些?计算属性是什么?

v-if和v-show有什么区别?
计算属性和method有什么区别?

10、自己有没有做过Vue组件的封装?需要注意一些什么?

有,
需要注意什么:
		1.需要保证功能的单一性、不和其他组件产生过多的联系
		2.通过props属性实现参数的传递
		3.通过事件派发向调用的组件传递数据
		4.data必须是一个function,其返回值为当前组件可用的数据

11、为什么Vue不能在IE8一下的浏览器运行?
11、less和sass以及post参数是或者webpack的配置

css预处理语言
postcss是一个平台框架,通过js来处理css代码。在vue脚手架生成的项目中已经包含了postcss的配置
最常见的一个操作是把px转为rem

webpack配置
	enter
	output
	loaders:加载器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值