vue 面试题2020-05-07

2020-10-16  本文已影响0人  一心一念一间
  1. vue父子组件生命周期调用顺序
    加载渲染过程 和先序深度遍历顺序有关
    父beforeCreate-->父created --> 父beforeMount -->子beforeCreate -->子created-->子beforeMounted -->子mounted-->父mounted
    子组件更新过程
    父boforeUpdate -->子boforeUpdate-->子updated-->父updated
    父组件更新过程
    父beforeUpdate-->父uptated
    销毁过程
    父beforeDestory-->子beforeDestory-->子desroyed-->父destoryed
    理解:
    组件的调用顺序都是先父后子,渲染完成的顺序肯定是先子后父
    组件的销毁操作是先父后子,销毁完成的顺序是先子后父

  2. vue中相同的逻辑如何抽离
    vue.mixin 用法 给组件每个生命周期,函数都混入一些公共逻辑

  3. 为什么使用异步组件 异步组件是一个函数
    import() 如果组件功能多打包的结果会变大,可以采用异步方式加载组件,实现文件的分割加载

  4. 插槽与作用域插槽区别
    创建组件虚拟节点时,会将组件的儿子的虚拟节点保存起来,当初始化组件时,通过插槽属性将儿子进行分类{a:[vnode],b:[vnode]}
    渲染组件时会拿对应的slot属性的节点进行替换操作(插槽的作用域为父组件)
    作用域插槽
    在解析的时候,不会作为组件的孩子节点。会解析成函数,当子组件渲染时,会通知此函数进行渲染(插槽的作用域为子组件)

  5. keep-alive
    缓存组件,当组件切换时不会对当前组件进行卸载,常用的2个属性 include.exclude 2个生命周期 actived deactived

  6. hash路由和history路由

  7. vue-router 中的导航守卫有哪些 完整的导航解析流程

  8. vuex action 和 mutation区别
    mutation 是同步更新数据 用的$watch
    action 是异步操作

  9. vuex工作原理

  10. 箭头函数 与this ,能否用 new执行?
    1 没有自己的this,继承的上下文的this,call apply 所以不能改变this
    2 箭头函数中没有arguments,只能通过…arg获取传递的参数数组
    3 箭头函数 没有prototype ,没有this ,所以不能用new

  1. 编码优化
    1 不要将所有的数据都放到data中,data中的数据都会增加getter和setter,会收集对应的watcher
    2v-for 绑定事件时用事件代理
    3 spa页面采用 keep-alive 缓存组件
    4 拆分组件 提高复用
    5 key 写上
    6 object.freeze 冻结数据 静态数据可以冻结一下
    7 合理使用懒加载 异步组件
    8 数据持久化问题
  2. vue 加载性能优化
    长列表插件 vue-virtual-scroll-list
    图片懒加载 vue-lazyload
    用户体验
    app-skeleton 骨架屏 先显示个框
    app-shell APP壳 先显示个导航等
    pwa 离线缓存 用的很少了

SEO优化
预渲染插件 prerender-spa-plugin
服务端渲染 ssr


var a = {
  i:1,
  toString(){   //  对象中的方法
    return this.i++
  },
  aa:()=>{  //与上一个写法区别? 这种是为了箭头函数写法
    console.log(2)
  } 
}
if(a ==1 && a == 2 && a ==3){
  console.log(1)
}
     var obj = {name:'',age:22}
     obj = new Proxy(obj,{
       get(target,prop){
        return target[prop]
       },
       set(target,prop,value){
        target[prop] = value
       }
     })

双向绑定 就是监听 onchange oninput 事件呗 mvc比mvvm 少了一层,视图更改,更新数据 就是监听input change事件

上一篇 下一篇

猜你喜欢

热点阅读