50+Vue经典面试题源码级详解,你值得收藏!(一天更新一题,持续更新!!!)

news2024/12/28 6:05:05

Vue经典面试题源码级详解

    • 1、Vue组件之间通信方式有哪些?
      • 分析:
      • 思路分析:
      • 回答范例:
        • 1. 组件通信常用方式有以下8种:
        • 2、根据组件之间关系讨论组件通信最为清晰有效
    • 2、v-if 和 v-for哪个优先级更高
      • 分析:
      • 思路分析:
      • 回答范例:

1、Vue组件之间通信方式有哪些?

分析:

vue是组件化开发框架,所以对于vue应用来说组件间放入的数据通信非常重要。此题主要考察大家vue基本功对于vue基础api熟练度。另外一些边界知识如provide/inject/$attrs则体现了面试者的知识广度。

组件传参的各种方式

在这里插入图片描述

思路分析:

  1. 总述知道的所有方式
  2. 按组件关系阐述使用场景

回答范例:

1. 组件通信常用方式有以下8种:

  • props
  • $emit / $on
  • $children / $parent
  • $attrs / $listeners
  • ref
  • $root
  • eventbus
  • vuex

注意vue3废弃的几个Api

  • $children
  • $listeners
  • v-on.native

2、根据组件之间关系讨论组件通信最为清晰有效

  • 父子组件
    props / $emit / $parent / ref / $attrs

  • 兄弟组件
    $parent / $root / eventbus / vuex

  • 跨层级关系
    eventbus / vuex / provide + inject

2、v-if 和 v-for哪个优先级更高

分析:

此题考查常识,文档中曾有详细说明 v2 | v3;也是一个很好的实践题目,经常会遇到,能够看出面试者api熟悉程度和应用能力。

思路分析:

  1. 先给出结论
  2. 为什么是这样,说出细节
  3. 那些场景可能导致我们这样做,该怎么处理
  4. 总结,拔高

回答范例:

  1. 实践中不应该把v-for和v-if放在一起使用
  2. vue2中,v-for的优先级是高于v-if的,把他们放在一起,输出的渲染函数中可以看出会先执行循环再执行判断,哪怕我们只渲染列表中一小部分元素,也得在每次重渲染的时候遍历整个列表,这会比较浪费;另外需要注意的是在vue3中则完全相反,v-if的优先级高于v-for,所以v-if执行的时候,它调用的变量还不存在,就会导致异常
  3. 通常会有两种情况下导致我们这样做:
  • 为了过滤列表中的项目(比如 v-for="item in list" v-if="item.isShow"),此时定义一个计算属性或者直接v-for时过滤改列表(比如:v-for="item in list.filter(codin => codin.age > 0)"
  • 为了过滤本该被隐藏的列表(比如 v-for="item in list" v-if="isShow" ),此时把v-if移动至容器元素上(比如 ulol)或者外面包一层 template即可
  1. 文档中 明确指出 永远不要把 v-ifv-for 同时用在同一个元素上,显然这是一个注意事项
  2. 源码里面关于代码生成的部分,能够清晰地看到是先处理v-if还是v-for,顺序上vue2和vue3正好相反,因此产生一些症状的不同,但是不管怎样都是不能把它们写在一起的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习C语言笔记:数据和C

C Primer Plus (第6版)中文版第3章 学习内容: 1.关键字——int、short、long、unsigned、char、float、double、_Bool、_Complex、_Imaginary; 2.运算符——sizeof(); 3.函数——scanf(); 4.整数类型和浮点数类型的区别; 5.如何书写整型和浮点…

STL简介

目录 什么是STL STL的版本 STL的六大组件 如何学习STL STL的缺陷 结束语 什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架 STL的版本…

公司来了个卷王,我愿称之为王中王,让人崩溃

前几天我们公司一下子也来了几个新人,这些年前人是真能熬啊,本来我们几个老油子都是每天稍微加会班就打算走了,这几个新人一直不走,搞得我们也不好走。 2023年春招就要开始了,最近内卷严重,各种跳槽裁员&a…

从TikTok功能优化,抓住直播带货机遇

从今年流出的各类消息总结,TikTok的发展势头愈发迅猛,无论是布局东南亚各个站点,还是在其下载量的激增,都迸发出了前所未有的劲头,其对本身的优化也一直在进行。那么今年,TikTok都进行了哪些功能优化呢&…

p5.js 使用npm安装p5.js后如何使用?

本文简介 点赞 关注 收藏 学会了 在 《p5.js 光速入门》 中都是使用 CDN 的方式去使用 p5.js 的,不太符合当下的开发习惯。 不管是使用 Vue 还是 React,我们日常项目大部分应该都是使用脚手架的方式进行开发了,按照 《p5.js 光速入门》 …

互联网营销的基础方法

推广目的 1.让目标消费群在最短的时间内认知新产品的功能、效果,缩短新产品推广期的时间长度,尽快进入成长期,创造效益。 2.使目标消费群产生试用的欲 望,并逐步将其培育成品牌忠诚者。 3.提高品牌知名度和美誉度。 4.提高现场售点的产品的销量。 5.巩固通路经销商的客…

ARM64内存虚拟化分析(1)基础知识

1 两级转换 1.1 什么是stage2转换 Stage2转换允许hypervisor控制虚拟机VM中内存视图。它允许hypervisor控制一个虚拟机可以访问哪块内存映射的系统资源,以及这些资源应该出现在虚拟机地址空间的哪个位置。 这种控制内存访问的能力对于隔离是非常重要的。Stage2转换…

【C语言 全局 整形变量 布尔变量 数组变量 指针变量 结构体位域变量 枚举变量被其他.C文件相互访问】

【C语言 全局-> 整形变量 布尔变量 数组变量 指针变量 结构体位域变量 枚举变量被其他.C文件相互访问】【0】UI设计【1】项目概述【2】mainwindow.h头文件解析【3】头文件源码【4】mianwindow.c源文件解析【5】源文件源码【6】main文件解析源码【7】编译-链接-运行结果学完这…

对Java中String类的解释

文章目录一、String 的常用方法1.字符串的构造以及字符串常量池2.String 类中对象的比较3.字符串查找4.转化5.字符串替换6.字符串拆分7.字符串截取二、StringBuilder 和 StringBuffer1.引入两者的原因2.相关修改操作的介绍一、String 的常用方法 首先,在介绍 Strin…

[年终总结] 2023,希望一切都能够好起来

0. 引言 2022年,依旧是一个特殊的年份,从前年开始,我就开始撰写年终总结,感兴趣的大家可以看一看2020年终总结和2021年年终总结。 一年比一年过的快速,我也感觉到一年比一年过的更加珍惜。曾经以为自己尚且年轻&…

linux /dev/mapper/rhel-root分区扩容

命令查看linux内存占用情况 /dev/mapper/rhel-root分区已满,主要是东西太多,改善了也删了,但是还是不够用。在扩容之前在首先针对虚拟机硬盘进行扩展 接下来就是在linux上操作了 1、输入fdisk -l 这里显示我已经有了三个分区,sd…

ArcGIS基础实验操作100例--实验9线要素的延伸与裁剪

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验9 线要素的延伸与裁剪 目录 一、实验背景 二、实验数据 三、实验步骤 (…

qinglong-青龙面板部署

背景 之前服务器部署过 jd自动签到、刷豆的脚本,感觉还可以,薅羊毛每天1-2米左右,能把服务器成本薅回来,不过缺点不好管理,后面很久没人维护就凉了。最近了解到青龙面板能够很方便的维护这种脚本。所以部署了一下。 …

SQL学习笔记-聚合函数部分

鉴于自己最近在做后端开发的工作时,发现自己的SQL能力实在太差,开始学习SQL语句基础,学习过程中在本博客进行笔记记录,课程参考:SQL课程 聚合函数是一系列SQL内置的方法,能够完成一些非常使用的功能&#…

java输入语句怎么写

壹哥在前面给大家讲过,Java中给咱们提供了有三个标准的“流”,他们被统称为standard streams。除了负责输出的流之外,还有一个负责输入的标准流,Java中对应的API是System.in。 与标准输出相比,标准输入则复杂的多。尤…

OpenHarmony#深入浅出学习eTs/ArkUI#(一)模拟器/真机环境搭建

本项目的Gitee仓地址:深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) (之前有些意外,数据丢失了,现在重新发,且不参与任何活动,在第一篇说明一下,之后就不再说明了) 一、下载…

2022 年 11 种最佳移动自动化测试工具

移动应用程序开发正在以前所未有的速度增长,并且相应地需要使用正确的移动测试策略执行彻底的测试。这些策略主要涉及使用各种移动自动化测试工具。 移动测试工具可帮助企业自动化其应用程序测试,并减少额外的成本、时间和人为错误的机会。我们生活在一个…

用QT实现一个模型交互的网络请求

最近,我接收到了一个项目需求,具体内容如下: 具体要求: 1.交付给我程序的源代码即可,因为我要集成到我的大软件中,要求采用C和QT开发; 2.程序首先检测当前用户环境有没有联网,如果没…

linux的权限

前言 学习权限我们先理解一下xshell 我们使用Xshell的存在的意义 帮助进行命令行传递和返回结构保护操作系统 linux的权限 (1)权限的概念 限制人的,访问的对象可能没有这种“属性” 权限:一件事情是否运行被谁“做” 权限 人 事物属性 (2)linux的上…

【vector的各个begin迭代器详解】

前言 本文是熊猫练习stl一段时间之后,对vector容器的各种迭代器产生了很大的好奇心,于是对它们进行了以下探究。 从图中我们可以知道,vector一个有四组不同的迭代器, 其中,字符 ‘c’ 是 const 常量的意思&#xff0c…