一. Vue的使用

1. Vue的基本使用

  1. 指令 插值
  • 插值 表达式

  • 指令 动态属性

  • v-html 会有XSS风险 会覆盖子组件

  1. computed 和 watch
  • computed 有缓存 data不变则不会重新计算
  • watch 如何深度监听
  • watch 监听引用类型时 拿不到oldVal
  1. v-for
  • v-for 和 v-if 不能同时使用
  • :key的值尽量不要使用index或者random
  1. 事件
  • 事件修饰符
  • 按键修饰符
  • 事件被绑定到了哪里:事件会挂载到当前绑定的元素上

2. Vue组件的使用

  1. props

父组件向子组件传递数据

  1. $emit

子组件触发父组件的事件并且传递参数

  1. 组件间的通讯 - 自定义事件

在绑定自定义事件中 第二个参数 是一个方法名称 在beforeDsstoy函数中 需要将方法及时销毁 否则会造成内存泄露

  1. 组件的生命周期
  • 挂载阶段 beforCreate created beforMount mounted
  • 更新阶段 beforUpdate updated
  • 销毁阶段 beforDestroy destroyed

3. Vue的高级特性

  1. 自定义v-model

颜色选择器

  1. $nextTick

Vue 是异步渲染
data 改变之后 DOM不会立刻渲染
$nextTick 会在DOM渲染之后触发 以获取最新DOM节点

  1. slot(插槽)

粗暴的理解成 父组件想要向子组件中插入写东西

  1. 基本使用
  2. 作用域插槽
  3. 具名插槽
  1. 动态、异步组件

动态组件:

  • :is=“component-name”用法

异步组件:

  • import()函数
  • 按需要加载 异步加载大组件
  1. keep-alive

缓存组件
频繁切换但不需要渲染 (tab选项卡)
Vue常见性能优化之一

  1. mixin

多个组件有相同的逻辑 抽离出来
mixin中可能遇到的问题

  • 变量来源不明确 不利于阅读
  • 多mixin可能会曹成命名冲突
  • mixin组件可能会出现多对多的关系 复杂度较高

4. Vuex的使用

  • state的数据结构设计
  • getters
  • action
  • mutation
  • 用于Vue组件
  • dispatch
  • commit
  • mapState
  • mapGetters
  • mapActions
  • mapMutations

5. Vue-router

  1. 路由模式
  • hash
  • H5 history
  1. 路由配置
  • 动态路由
  • 懒加载

二. Vue的原理(大厂必考)

1. 组件化 和 MVVM

  1. 数据驱动试图
  • 传统组件 只是静态渲染 更新还要依赖于操作DOM
  • 数据驱动试图 - Vue MVVM
  • 数据驱动试图 - React setState
  1. MVVM

2. 响应式 原理(重点)

  1. 组件data的数据一旦变化 立刻触发视图的更新
  2. 实现数据驱动试图的第一步
  3. 核心:API-Object.defineProperty

缺点:

  • 深度监听 需要递归到底 一次性计算量大
  • 无法监听新增属性和删除属性(Vue.set Vue.delete)
  • 无法原生监听数组 需要特殊处理

Vue3.0启用proxy 实现响应式 的缺点:

  • proxy的兼容性不好 且无法polyfill

3. vdom和diff

  1. vdon是实现Vue和React的重要基石
  2. diff算法是vdom中最核心 最关键的部分

4. 模板编译

5. 渲染过程

6. 前端路由

三. Vue经典面试题

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

v-show:通过css样式来控制 就是两个或多个元素中 让其显示的就直接显示 如果让其隐藏的就为其添加display:none
v-if:通过Vue本身的机制控制 就是两个或多个元素中 让其显示的就显示 其他的就不会被加载到浏览器中
以上两者的使用场景:判断是否为频繁切换 元素的显示 如果需要频繁的切换建议使用v-show 如果是一次性的建议使用v-if

2. 为何 v-for 中要用 key

v-for中必须要有key 并且他不能使用index要取和业务相关的值

3. 描述 Vue 中的生命周期(有父子组件的情况)

单组件的生命周期



有父子组件的情况
初始化Vue实例是从外到内 渲染是从内到外的:父组件初始化(created)---- 子组件初始化(created)---- 子组件渲染(mounted)----父组件渲染(mounted)
更新数据逻辑同上

4. Vue 组件如何通讯

父子通讯 :props和$emit
无关系组件之间通讯:自定义事件
Vuex通讯

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

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

7. created 和 mounted 的区别

created:把Vue的实例进行初始化 并没有开始渲染
mounted:是组件真正的网页绘制完成了(ajax获取信息 绑定事件等操作需要在这里完成)

8. 在 beforDestroy 中需要做什么?

解除绑定
销毁子组件 以及事件监听器
解除自定义事件的绑定

前端面试---Vue部分考点梳理相关推荐

  1. 前端面试vue (下)

    四.路由 1. Vue-Router 的懒加载如何实现 非懒加载: import List from '@/components/list.vue' const router = new VueRou ...

  2. 前端面试vue (上)

    一.Vue 基础 1. Vue的基本原理 当一个Vue实例创建时,Vue会遍历data中的属性,用 Object.defineProperty(vue3.0使用proxy )将它们转为 getter/ ...

  3. 前端面试-Vue系列

    目录 有使用过vue吗?说说你对vue的理解 是什么 Vue核心特性 数据驱动(MVVM) 组件化 指令系统 Vue跟传统开发的区别 Vue和React对比 相同点 区别 你对SPA单页面的理解,它的 ...

  4. 前端面试 vue生命周期钩子是如何实现的?理解vue中模板编译原理?

    生命周期钩子在内部会被vue维护成一个数组(vue 内部有一个方法mergeOption)和全局的生命周期合并最终转换成数组,当执行到具体流程时会执行钩子(发布订阅模式),callHook来实现调用. ...

  5. 前端面试:被问到BFC,要这样答才能满分

    提示:BFC作为前端面试的高频考点,常常会问到什么是BFC?BFC的作用?如何触发BFC?这些问题.但是往往考生们答的都不尽人意,不是说不清楚,就是说不全面,看完这篇文章,我相信你会对BFC有更加深入 ...

  6. web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)

    系列文章目录 内容 参考链接 Vue基本使用 Vue的基本使用(一文掌握Vue最基础的知识点) Vue通信和高级特性 Vue组件间的通信及高级特性(多种组件间的通信.自定义v-model.nextTi ...

  7. 梳理了一下前端面试必考知识点

    大家好,我是若川.最近收到不少朋友留言说,前端面试越来越难,尤其是技术面. 既要熟悉各种框架,又要精通每个知识点的底层逻辑,甚至连前端工程化的内容都拿来考察. 哪怕是有 3-5 年经验的老前端,都极有 ...

  8. 【前端面试宝典】超基础的vue知识

    写在前面 CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:前端面试宝典 话 ...

  9. web前端面试宝典——带你直击面试重难点(40个经典题目,涵盖近90%的考点,码字2w,干货满满!)

    系列文章目录 JavaScript 知识梳理,收录了web前端面试 95%以上 的高频考点,满满的干货.给你做一个高效的知识梳理,为你的面试保驾护航! 内容 参考链接 HTML & CSS 篇 ...

最新文章

  1. JavaScript一步一步:JavaScript 对象和HTML DOM 对象
  2. python bytes()函数
  3. vue-cli3 环境设置
  4. leetcode算法—两数之和 Two Sum
  5. spring-boot-2.0.3应用篇 - shiro集成
  6. 从贝叶斯公式到垃圾邮件的识别
  7. linux yum 链接,Linux YUM之YUM仓库
  8. VS2010整合NUnit进行单元测试
  9. template.js的用法
  10. pythonzip压缩字符串_Python压缩与解压缩ZIP文件的实现方法
  11. 在手机上实现实时的单目3D重建
  12. 二、Linux常用命令——文件处理命令
  13. PSFTP上传文件到服务器
  14. SQL SERVER 资源性能监控-资源监视器
  15. 微信小程序开发之微信小程序交互
  16. 数据库系统和数据库管理系统的定义以及数据库管理系统的作用
  17. WPF ScrollViewer跟随鼠标滑动设置
  18. 二进制 八进制 十进制 转换
  19. 信噪比与雷达探测距离之间关系
  20. Contextual Transformer Networks for Visual Recognition

热门文章

  1. 基于sobel算法的边缘检测设计与实现
  2. win10树莓派改ip_Window 10通过网线和Wifi连接树莓派
  3. [C语言]为什么要有include?——从Hello World说起
  4. 今天刚查到的宏,学习
  5. 1.3 Go语言基础之数据类型
  6. PKUSC2018训练日程(4.18~5.30)
  7. MySQL教程(三)—— MySQL的安装与配置
  8. cocos2d-x 帧动画
  9. EntityFramework 插件之EntityFramework.Extended (批量处理)
  10. Spark技术内幕:Stage划分及提交源码分析