vue2常见的面试题---下 !!

  • Vue中key的作用
  • 答:key是Vue中的唯一标记,通过这个key,diff操作可以更准确,更快速
  • 为什么不建议用index作为key?
  • 答:使用index作为key和没写基本上没区别,因为不管数组的顺序怎么颠倒,index都是0,1,2...这样排列,导致Vue会复用错误的子节点,做很多的额外的工作
  • v-for哪个优先级更高?如果同时出现,应如何优化?
  • 答:v-for的优先级大于v-if,如果在同一个dom或者组件上使用v-if,v-if会运行在v-for循环中,造成性能的浪费
  • 说一下Vue3的生命周期
  • 答:setup() (组件创建之前)
  • onCreated()(组件创建完成后)
  • OnBeforeUpdata() (组件更新之前)
  • OnUpdated()(组件更新完成后)
  • OnBeforeUnmount()(组件销毁之前)
  • OnUnmounted()(组件销毁完成后)
  • Vue 子组件和父组件执行顺序
  • 答:加载渲染全过程:
  • 1.父组件beforeCreate
  • 2.父组件created
  • 3.父组件beforeMount
  • 4.子组件beforeCreate
  • 5.子组件created
  • 6.子组件beforeMount
  • 7.子组件mounted
  • 8.父组件mounted
  • 更新过程:
  • 1.父组件beforeUpdate
  • 2.子组件beforeUpdate
  • 3.字组件update
  • 4.父组件update
  • 销毁过程:
  • 1.父组件beforeDestroy
  • 2.子组件beforeDestroy
  • 3.子组件destroyed
  • 4.父组件destroyed
  • 26. 路由的hash和history模式的区别
  • 答:hash描述:使用url的hash值来构建路由,使用onhashchange事件,获取到最新的window.location.hash去匹配路由监听的url中地址,url地址中有#号,hash值不会包含在http请求中,不需要后台服务器的支持,比history兼容性好一些
  • History模式:依赖HTML5的History API构建:通过history.pushState方法来完成URL跳转而无须重新加载页面,兼容性比hash略差,刷新有404问题,需要后台服务器的支持
  • 27.$route 和$router 的区别
  • 答:$route:是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数
  • $router:是“路由实例”对象包括了路由的跳转方法,钩子函数等
  • Vue-router 导航守卫有哪些
  • 答:全局导航守卫,独享路由导航守卫,组件内导航守卫
  • Vuex有哪几种属性?
  • 答:1.state=>基本数据(数据源存法地)
  • 2.getters=>从基本数据派生出来的数据
  • 3.mutations=>提交更改数据的方法,同步
  • 4.actions=>像一个装饰器,包裹mutations,使之可以异步
  • 5.modules=>模块化Vuex
  • 30.Vuex 和 localStorage 的区别
  • 答:(1)最重要的区别
  • 1.vuex存储在内存中
  • 2.localstorage则以文件的方法存储在本地,只能存储字符串类型的数据,存储对象需要JSON的stringify和parse方法进行处理,读取内存比读取硬盘速度要快
  • (2)应用场景
  • 1.vuex是一个专为Vue.js应用程序开发的状态管理模式,他采用了集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生改变,vuex用于组件之间的传值。
  • 2.localstorage是本地存储,是将数据存储到浏览器的方法,一般是在跨页面传递数据时使用。
  • (3).永久性
  • vuex能做到数据的响应式,localstorage不能
  • 31.vue 组件通信的几种方式
  • 答:三种方式
  • 父子组件通信
  • 兄弟组件间通信
  • 任意组件之间
  • 插槽分几种? 分别是什么?
  • 答:默认插槽(匿名存储和后背插槽),具名插槽,作用域插槽
  • call、bind、apply 的区别?
  • 答:1.call和apply都是直接调用
  • 2.call接收多个参数,其中第一个是this指向,从第二个开始,是原函数参数依次传入
  • 3.Apply接收两个参数,第一个是this指向,第二个参数是一个原函数实参组成的数组
  • 4.Bind返回一个函数
  • 34.常用的数组方法?8个以上
  • 答:forEach() 遍历数组返回undefined
  • Map() 遍历数组返回新数组
  • Pop() 尾部删除数据
  • Push() 尾部添加数据
  • Shift() 头部删除
  • Unshift() 头部添加
  • Find() 根据条件查找下标
  • findIndex() 根据条件查找元素下标
  • 35.Vue 中常见性能优化
  • 答:1.路由懒加载
  • 2.keep-alive缓存页面
  • 3.使用v-show复用DOM
  • 4.v-for遍历避免同时使用v-if
  • 5.长列表性能优化
  • 6.事件的销毁
  • 7.图片懒加载
  • 8.弟三方插件按需引入
  • 9.无状态的组件标记为函数式组件
  • 10.子组件分隔
  • 11.变量本地化
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值