vue面试题真题

1.v-if和v-show的区别

2.v-for中为什么用key

 3.描述Vue组件生命周期(父子组件)

 4.Vue组件如何通讯

5. 描述组件渲染更新的过程

6.双向数据绑定v-model的实现原理 

 7.对MVVM的理解

8.computed有何I我特点 

 9.为何组件data必须是一个函数

data() { return { 对象 } }  data是函数,return出对象

export default看似是一个对象,.vue文件编译出来,实际是一个class 一个类,在每个地方使用的时候,实际是对class的实例化,在实例化的时候执行data,如果data不是函数的话,那每个组件的实例都是一样的,就共享了。就是如果不是函数,这个组件在两个地方用,如果一个地方的data修改了,那另一个地方的也修改了。如果是函数,两个地方实例化,那两边的data就是在闭包中,就不会相互影响。

 10.ajax请求应该放在哪个生命周期

放在mounted里,整个渲染完成,DOM也加载完成

11.如何将组件所有的props传递给子组件? 

12.如何自己实现v-model

官方有说到,v-model的原理其实是背后有两个操作:

        v-bind绑定value属性的值;

        v-on绑定input事件监听到函数中,函数会获取最新的值赋值到绑定的属性中;

13. 多个组件有相同逻辑,如何抽离

14.何时使用异步组件

  • 加载大组件
  • 路由异步加载 
  • 可以优化性能

15.何时使用keep-alive

  • 组件缓存,不需要重复渲染
  • 如多个静态tab页的切换
  • 可以优化性能

17.何时需要使用beforeDestory

不解绑自定义事件会造成内存泄漏

自定义DOM事件,即自己添加的addEventListener事件

 18.什么是作用域插槽

有时候我们希望插槽可以访问到子组件中的内容是非常重要的:

        当一个组件被用来渲染一个数组元素时,我们使用插槽,并且希望插槽中没有显示每项的内容;

        这个Vue给我们提供了作用域插槽;

我们来看下面的一个案例:

 p1.在App.vue中定义好数据

 p2.传递给ShowNames组件中

 p3.ShowNames组件中遍历names数据

 p4.定义插槽的prop

 p5.通过v-slot:default的方式获取到slot的props

 p6.使用slotProps中的item和index

 19.Vuex中的action和mutation的区别 

 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation:

mutation一条重要的原则就是要记住 mutation 必须是同步函数

        这是因为devtool工具会记录mutation的日记;

        每一条mutation被记录,devtools都需要捕捉到前一状态和后一状态的快照;

        但是在mutation中执行异步操作,就无法追踪到数据的变化;

        所以Vuex的重要原则中要求 mutation必须是同步函数;

Action类似于mutation,不同在于:

        Action提交的是mutation,而不是直接变更状态;(mutation里是直接更改state状态)

        Action可以包含任意异步操作;(mutation里不允许异步操作)

 20.Vue-router常用的路由模式

21.如何配置Vue-router异步加载 

 22.请用vnode描述一个DOM结构

包含三部分:标签tag,附着在标签上的属性、样式、事件props,子元素children

23.监听data变化的核心API是什么

 24.vue如何监听数组变化

25.diff算法的时间复杂度

O(n)

在O(O^3)的基础上做了些调整

26.简述diff算法的过程

27.vue为何是异步渲染$nextTick作用

 28.vue常见性能优化方式

Vue 项目性能优化 — 实践指南(网上最全 / 详细)

不需要重复渲染的地方最好缓存下来 

 data深度监听,需要一次性遍历完成,层级太深,会在做响应式的时候,计算的深度比较多,递归次数比较多,造成页面卡顿

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值