前端面试vue篇

1.vue中常见的指令
  - v-for
  - v-if
  - v-show
  - v-bind
  - v-on
  - v-else
  - v-else-if
  - v-model
  - v-html
  - v-text
  - v-once
  - v-slot
  - v-pre

2. v-if和v-show的区别和场景,v-html和v-text的区别

3. vue生命周期
        初始化事件,生命周期
  beforeCreate
        注入数据,初始化响应式数据
  cteated
        是否有el和template选项
  beforeMount
        将数据挂载到模板中,将虚拟DOM转成真实dom
  mounted
        数据改变时触发,dom的更新前后
  beforeUpdate
  updated
        组件销毁的时候触发
  beforeDestroy
  destroyed

  activated
        缓存组件被激活时调用
  deactivated
        缓存组件被停用时调用

  errorCaptured
        子孙组件出错时调用

4. 计算属性,方法,侦听器的区别

5. 描述一下插槽,过滤器和混入

6. 什么是前端路由,传统的路由实现?

7. vue-router
  - vue路由有哪几种模式,有什么区别
  - 什么是嵌套路由,动态路由和路由重定向
  - 路由传参怎么做?
    - 通过动态路由做
  - 描述一下路由守卫

8. 描述一下vuex(从下面几个方向回答)
  - 是做什么的?
  - 有哪几个部分
  - 每个部分都做什么
  - 状态的流向(流程图)
  - 辅助函数

9. 组件传参怎么做
  - 父子传参
  - 非父子传参


10.vue响应式原理
  vue是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的getter,setter,当属性发生改变的时候,将变动发布给订阅者,触发监听回调
  由于 JavaScript 的限制,Vue 不能检测数组和对象的变化

  vue3.0使用了proxy

11.为什么要使用虚拟DOM
  - 虚拟DOM是为了解决浏览器性能问题而被设计出来的。
  - 比如有10次循环,虚拟DOM不会立即操作DOM,而是将10次的diff内容保存在一个js对象里面,然后一次性的操作,避免大量无谓的计算
  - 操作内存中的js对象的速度显然更快,等更新完后,再将最终的js对象映射成真实的DOM,交由浏览器绘制。

12. diff操作
  数据改变,虚拟DOM也会改变
  我们不想重新渲染vdom,我们只想渲染改变的部分,就需要用到diff算法
  两个树如果完全比较,时间复杂度是O(n^3),Vue的Diff算法的时间复杂度是O(n),意味着只能平层的比较两棵树的节点,放弃了深度遍历。似乎牺牲了一定的精准性来换取速度,但考虑到前端页面通常不会跨层移动DOM元素,这样做是优先的
  ```
    采用了同级比较,只有count相同的children进行比较
    比较他们的key,进行增加,删除,替换,换位等操作
  ```
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuwenjie_

感谢打赏,问题留言~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值