2024最新Vue面试题含源码解析(1)

本文探讨了Vue中的DOM复用策略、v-for的key使用、生命周期管理、组件通信、数据绑定机制、Vue3.0新特性的介绍,以及组件性能优化和VueCLI工程配置。同时包含了前端开发学习资源和大厂面试题点
摘要由CSDN通过智能技术生成
  • 使用v-show复用DOM
11111
222222
  • v-for时加key,以及避免和v-if同时使用

    v-for = “user in activeUsers”

    :key = “user.id”

    {{ user.name }}

    • 事件销毁

    created(){

    this.timer = setInterval(this.refresh,2000)

    },

    beforeDestroy(){

    clearInterval(this.timer)

    }

    • 图片懒加载(vue-lazyload)
    • 第三方插件按需引入

    import Vue from ‘vue’

    import { Button,Select } from ‘element-ui’

    Vue.use(Button)

    Vue.use(Select)

    • 无状态的组件标记为函数式组件
    • 子组件分割
    • 长性能列表的优化

    • 如果列表是纯粹的数据展示,不会有任何改变,就不需要做响应式

    export default {

    data: () => ({

    users:[]

    })

    async created(){

    const users = await axios.get(‘/api/users’)

    this.users = object.freeze(users)

    }

    }

    • 如果是大数据长列表,可采用虚拟滚动,只渲染少部分区域内容

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


    • 见上文梳理

    Vue组件如何通讯(常见)


    描述组件渲染和更新的过程


    • 执行render函数 触发 getter 收集依赖到 watcher

    • 更新的时候 触发 setter 通知 watcher 触发 re-render 渲染

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


    • input 元素的 value = this.name

    • 绑定input事件 this.name = $event.target.value

    • data 更新触发re-render

    对MVVM的理解


    computed 有何特点


    • 缓存,data不变不会重新计算

    • 提高性能

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


    • mounted (整个渲染完成,dom渲染完成)

    • js是单线程,ajax异步获取数据

    如何将组件所有props传递给子组件


    • $props

    • <User v-bind="$props">

    何时需要使用beforeDestory


    • 解绑自定义事件 event.$off

    • 清楚定时器

    • 解绑自定义的DOM事件,如window scroll 等

    Vuex中action和mutation有何区别


    • action中处理异步,mutation不可以

    • mutation做原子操作

    • action 可以整合多个mutation

    请用vnode描述一个DOM结构


    {

    tag:‘xx’,

    props:{

    id:‘xx’

    },

    children:[

    tag:‘xx’,

    children:“xxx”

    ]

    }

    简述diff算法过程


    • patch(elm,vnode) 和 patch(vnode,newVnode)

    • patchVnode 和 addVnodes 和 removeVnode

    • updateChildren(key的重要性)

    你对Vue3.0的新特性有没有了解


    • 更快

    • 虚拟DOM重写

    期待更多的编译时提示来减少运行时开销,使用更有效的代码来创建虚拟节点

    组件快速路径 + 单个调用 + 子节点类型检测

    • 跳过不必要的条件分支

    • JS引擎更容易优化

    虚拟DOM重写

    • 优化slots的生成

    vue3中可以单独重新渲染父级和子级

    • 确保实例正确的跟踪依赖关系

    • 避免不必要的父子组件重新渲染

    优化slots的生成

    • 静态树提升

    使用静态树提升,这意味着Vue3 的编译器将能够检测到什么是静态的,然后将其提升,从而降低了渲染成本。

    • 跳过修补整棵树,从而降低渲染成本

    • 即使多次出现也能正常工作 静态树提升

    • 静态属性提升

    使用静态属性提升,Vue 3 打补丁时将跳过这些属性不会改变的节点,但是孩子还要继续patch 静态属性提升

    • 基于Proxy的响应式系统

    Vue 2的响应式系统使用 Object.defineProperty的getter和setter。Vue 3将使用ES2015 Proxy作为其观察机制,这将会带来如下变化:

    • 组件实例初始化的速度提高100%

    • 使用Proxy节省以前一半的内存开销,加快速度,但是存在低浏览器版本的不兼容

    • 为了继续支持IE11,Vue 3将发布一个支持旧观察机制的和新Proxy版本的构建

    • 更小

    • 通过摇树优化核心库体积

    • 更容易维护

    • TypeScript + 模块化

    Vue 3将带来更可维护的源代码。他不仅会使用TypeScript,而且许多包被解耦,更加模块化

    • 更加友好

    • 跨平台:编译器核心和运行时核心与平台无关,使得Vue更容易与任何平台(web、Android、IOS)一起使用

    • 更容易使用

    • 改进的TypeScript支持,编辑器能提供强有力的类型检查和错误及警告

    • 更好的调试支持

    • 独立的响应化模块

    • Composition API

    由于篇幅原因,仅展示一部分面试题详解,更多最新的Vue面试题整理成了一个PDF,需要的朋友点击这里免费获取

    vue-cli工程
    • 构建的 vue-cli 工程都到了哪些技术,它们的作用分别是什么?

    • vue-cli 工程常用的 npm 命令有哪些?

    • 请说出vue-cli工程中文件夹和文件的用处

    • config文件夹 下 index.js 的对于工程 开发环境 和 生产环境 的配置

    • 请你详细介绍一些 package.json 里面的配置

    vue核心知识点
    • 对于Vue是一套渐进式框架的理解

    • vue.js的两个核心是什么?

    • 请问 v-if 和 v-show 有什么区别

    • vue常用的修饰符

    • v-on可以监听多个方法吗?

    • vue中 key 值的作用

    • vue-cli工程升级vue版本

    • vue事件中如何使用event对象?

    • $nextTick的使用

    • Vue 组件中 data 为什么必须是函数

    • v-for 与 v-if 的优先级

    • vue中子组件调用父组件的方法

    • vue中 keep-alive 组件的作用

    • vue中如何编写可复用的组件?

    • 什么是vue生命周期?

    • vue生命周期钩子函数有哪些?

    • vue如何监听键盘事件中的按键?

    • vue更新数组时触发视图更新的方法

    • vue中对象更改检测的注意事项

    • 解决非工程化项目初始化页面闪动问题

    • v-for产生的列表,实现active的切换

    • v-model语法糖的组件中的使用

    • vue中自定义过滤器

    • vue等单页面应用及其优缺点

    • 什么是vue的计算属性?

    • vue-cli提供的几种脚手架模板

    • vue父组件如何向子组件中传递数据?

    • vue弹窗后如何禁止滚动条滚动?

    • 计算属性的缓存和方法调用的区别

    • vue-cli中自定义指令的使用

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

    因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    img

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

    如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

    最后

    本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等

    详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车

    前端视频资料:
    道该从何学起的朋友,同时减轻大家的负担。**

    [外链图片转存中…(img-umciToBs-1712860753012)]

    [外链图片转存中…(img-fCVLd5PY-1712860753013)]

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

    [外链图片转存中…(img-l9EDYyTm-1712860753013)]

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

    如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

    最后

    本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等

    详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车

    [外链图片转存中…(img-L0DaMg08-1712860753014)]

    前端视频资料:

    • 17
      点赞
    • 21
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值