没有合适的资源?快使用搜索试试~ 我知道了~
Vue面试题整合 初级(简单) 1、Vue 解决了什么问题 ① 虚拟 dom:dom 操作时非常耗性能的,不再使用原生的 dom 操作节点,极大的解放 dom 操作,但具体操作的还是 dom,不过是换了一种方式。 ② 视图、数据、结构分离:使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作。 ③ 组件化:把一个单页应用中的各种模块拆分到一个一个单独的组件中,便于开发,以及后期的维护 1、nextTick 的理解 使用 nextTick 的原因:Vue 是异步修改 DOM 的,并且不鼓励开发者直接接触 DOM,但是有时候需要必须对数据更改后的 DOM 元素做相应的处理,但是获取到的 DOM 数据并不是更改后的数据,这时候就需要 this.$nextTick(); 高级(困难) 1、Vue.mixin 的使用场景和原理
资源推荐
资源详情
资源评论
vue 面试
Vue 面试题整合
初级(简单)
1、Vue 解决了什么问题
① 虚拟 dom:dom 操作时非常耗性能的,不再使用原生的
dom 操作节点,极大的解放 dom 操作,但具体操作的还是 dom,
不过是换了一种方式。
② 视图、数据、结构分离:使数据的更改更为简单,不需要进
行逻辑代码的修改,只需要操作数据就能完成相关操作。
③ 组件化:把一个单页应用中的各种模块拆分到一个一个单独
的组件中,便于开发,以及后期的维护
2、Vue 的生命周期(11 个钩子函数)
⑴beforeCreate(创建前):在此生命周期函数执行的时候,data
和 methods 中的数据都还没有初始化。
⑵created(创建后):在此生命周期函数中,data 和 methods
都已经被初始化好了,如果要调用 methods 中的方法,或者操作
data 中的数据,最早只能在 created 中操作。
⑶beforeMount(载入前):在此生命周期函数执行的时候,模板
已经在内存中编译好了,但是尚未挂载到页面中去,此时页面还是旧
的。
⑷mounted(载入后):此时页面和内存中都是最新的数据,这个
钩子函数是最早可以操作 dom 节点的方法。
⑸beforeUpdate(更新前):此时页面中显示的数据还是旧的,
但是 data 中的数据是最新的,且页面并未和最新的数据同步。
⑹Updated(更新后):此时页面显示数据和最新的 data 数据同
步。
⑺beforeDestroy(销毁前):当执行该生命周期函数的时候,实
例身上所有的 data,所有的 methods 以及过滤器......等都处于可
用状态,并没有真正执行销毁。
⑻destroyed(销毁后):此时组件以及被完全销毁,实例中的所
有的数据、方法、属性、过滤器......等都已经不可用了。 //下面两个
钩子函数一般配合<keep-alive></keep-alive>使用
⑼activated( 组 件 激 活 时 ) : 和 上 面 的 beforeDestroy 和
destroyed 用法差不多,但是如果我们需要一个实例,在销毁后再
次出现的话,用 beforeDestroy 和 destroyed 的话,就太浪费性
能了。实例被激活时使用,用于重复激活一个实例的时候
⑽deactivated(组件未激活时):实例没有被激活时。
⑾errorCaptured(错误调用):当捕获一个来自后代组件的错误
时被调用
3、watch、computed 和 methods 的区别
methods 在重新渲染的时候每次都会被重新的调用;
computed 是自动监听依赖值的变化,从而动态返回内容,主
要目的是简化模板内的复杂运算。所以区别来源于用法,只是需要动
态值,那就用 computed ;需要知道值的改变后执行业务逻辑,才
用 watch。
watch 也可以影响数据的变化,当绑定的数据方法变化时触发
响应的函数,需要在数据变化时执行异步或开销较大的操作时使用
watch。
4、Vue.js 的特点
简洁:页面由 HTML 模板+Json 数据+Vue 实例组成
数据驱动:自动计算属性和追踪依赖的模板表达式
组件化:用可复用、解耦的组件来构造页面
轻量:代码量小,不依赖其他库
快速:精确有效批量 DOM 更新
模板友好:可通过 npm,bower 等多种方式安装,很容易融
入
5、插槽的理解
插槽用于决定将所携带的内容,插入到子组件指定的某个位置,
但 内 容必须在父组件中子组 件 的 标签 内 定 义 , 在 子 组 件 中 用
<slot></slot>标签接收。slot 是组件内部的占位符。
6、vue-router 有哪几种导航钩子
① 全局导航钩子:一般用来判断权限,以及页面丢失时需要执
行的操作 ; beforeEach( )每次路由 进入之前执 行的函数。
afterEach()每次路由进入之后执行的函数。 beforeResolve()
2.5 新增 ② 单个路由(实例钩子):某个指定路由跳转时需要执行
的逻辑。 beforeEnter() beforeLeave() ③ 组件路由钩子:
beforeRouteEnter()beforeRouteLeave()beforeRouteUpdate
()
7、vue 组件中的 data 为什么是一个函数
data 是一个函数时,每个组件实例都有自己的作用域,每个实
例相互独立,不会相互影响。Object 是引用数据类型,如果不用
function 返回,每个组件的 data 都是内存的同一个地址,一个数
据改变了其他也改变了。
8、路由懒加载
使用原因:在单页应用中,如果没有应用懒加载,运用 webpack
打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,
延时过长,不利于用户体验,而运用懒加载则可以将页面进行划分,
需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少
首页加载用时 原理:vue 异步组件技术:异步加载,vue-router 配
置路由 , 使用 vue 的异步组件技术 , 实现按需加载。
9、Vue.js 介绍
Vue.js 是一个轻巧、高性能、可组件化的 MVVM 库,同时拥
有非常容易上手的 API;Vue.js 是一套构建用户界面的 渐进式框架。
与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。
Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它
库或已有项目整合。数据驱动+组件化的前端开发。通过尽可能简单
的 API 实现响应的数据绑定和组合的视图组件。核心是一个响应的
数据绑定系统。
10、请说出 vue.cli 项目中 src 目录每个文件夹和文件的用法
assets 文件 夹是 放静 态资 源; components 是放组 件;
router 是定义路由相关的配置; view 视图; app.vue 是一个应用
主组件; main.js 是入口文件
11、Vue 中 key 值的作用
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用
“就地复用”策略。如果数据项的顺序被改变,Vue 将不会移动
DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并
且确保它在特定索引下显示已被渲染过的每个元素。key 的作用主要
是为了高效的更新虚拟 DOM。
12、vue 的指令
⑴v-bind:给元素绑定属性
⑵v-on:给元素绑定事件
⑶v-html:给元素绑定数据,且该指令可以解析 html 标签
⑷v-text:给元素绑定数据,不解析标签
⑸v-model:数据双向绑定
⑹v-for:遍历数组
⑺v-if:条件渲染指令,动态在 DOM 内添加或删除 DOM 元
素
⑻v-else:条件渲染指令,必须跟 v-if 成对使用
⑼v-else-if:判断多层条件,必须跟 v-if 成对使用
⑽v-cloak:解决插值闪烁问题
剩余31页未读,继续阅读
资源评论
电阻电容及电线
- 粉丝: 61
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功