vue面试题
1. vue的特点是什么?
轻量级框架、双向数据绑定、视图,数据,结构分离、组件化,方便封装和复用、虚拟DOM
2. vue中父子组件如何传值?
父传子:子组件通过props接收父组件传过来的值,
子传父:利用@emit触发 传数据给父组件
3. v-show和v-if指令的共同点和不同点?
共同:都能控制元素的显示和隐藏
不同:v-show控制隐藏只编译一次,v-if事项DOM结构中添加或删除某一元素(比较消耗性能)
4. vue中的指令和用法
v-html 解析标签型数据、v-text原样显示、v-model 双向数据绑定、v-for循环、v-if,v-show显示隐藏、v-on事件绑定、v-once只绑定一次、v-bind单项数据绑定
5. vue-loader是什么?使用他的用途有哪些
vue文件的一个加载器,可以解析和转换(.Vue)的文件。
用途:js可以写es6、style样式、template、、style (设置lang = ‘less’, 可以解析less样式) scoped、
6. axios是什么?怎么使用?
Axios 请求后台资源模块
Npm install axios –save安装,(-D开发专用、-S开发可用,上线也可用)
7. 单页面应用和多页面的区别及优缺点
单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。
所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。
多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新
单页面的优点:
1,用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小
2,前后端分离
3,页面效果会比较炫酷(比如切换页面内容时的专场动画)
单页面缺点:
1,不利于seo
2,导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管理)
3,初次加载时耗时多
4,页面复杂度提高很多
8. 简述vue常用的修饰符和作用
- .stop 防止事件冒泡
- .self 只会触发自己范围内的事件
- .once 只会触发一次,第二次不触发
- .captrue 使事件触发从包含这个元素的顶层开始往下触发
9. MVC 、MVVM开发模式的理解
MVC:M(model模型)、V(视图view)、C(controller 控制器)
MVVM:M(数据模型)、v(视图)、VM(viewmodel监听model中数据的改变)
10. 前端如何优化网站性能
1. 减少http请求数量 (可以通过精灵图、合并css和js文件、和懒加载(lazyload)等方式)
2. 控制资源文件加载的优先级
3. 利用浏览器缓存
4. 减少DOM操作
5. 图标使用iconfont代替image标签
11.Vue中样式绑定语法
- 对象方法v-bind:class = “{‘color:red’}”
- 数组方法v-bind:class = “[class1,class2]”
- 行内v-bind:style = “{color:red , fontsize:24px}”
12.简述vue中的每个生命周期具体适合哪些场景
- beforeCreate
- create
- beforeMount
- mounted
- beforeUpdate
- updated
- beforeDestory
- destroyed
13.如何避免回调地狱?
- 模块化:将回调函数转成独立的函数
- 使用流程控制库,例 async
- 使用promise
- 使用async /await
14.使用npm 有哪些好处?
- 通过npm,可以安装和管理项目的依赖
- 可以通过package.json文件来管理项目信息,配置脚本
- Npm install xx –S开发依赖 、 -D开发上线依赖
- uninstall 卸载
- Npm install 安装所有依赖
15. 如何消除数组里面重复的元素
16. 写一个函数,清除字符串前后的空格
17. 常用的es6功能
Export导出、import导入、按需导入
18. Link和import 的区别
- Link是XHTML标签,除了加载css,还可以定义其它的事务,而import只能加载css
- Link同时加载css,import等页面加载完后在加载
- Link没有兼容问题,import低版浏览器不支持
- Link可以使用js控制DOM改变样式,import不可以