常见前端面试之VUE面试题汇总三

7. Vue 中封装的数组方法有哪些,其如何实现页面更新

在 Vue 中,对响应式处理利用的是 Object.defineProperty 对数据进 行拦截,而这个方法并不能监听到数组内部变化,数组长度变化,数 组的截取变化等,所以需要对这些操作进行 hack,让 Vue 能监听到 其中的变化。

那 Vue 是如何实现让这些数组方法实现元素的实时更新的呢,下面是 Vue 中对这些方法的封装:

简单来说就是,重写了数组中的那些原生方法,首先获取到这个数组 的__ob__,也就是它的 Observer 对象,如果有新的值,就调用 observeArray 继续对新的值观察变化(也就是通过 target__proto__ == arrayMethods 来改变了数组实例的型),然后手动调用 notify,通知渲染 watcher,执行 update。

8. Vue data 中某一个属性的值发生改变后,视图会立即同步执 行重新渲染吗?

不会立即同步执行重新渲染。Vue 实现响应式并不是数据发生变化之 后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化, Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。

如果同一个 watcher 被多次触发,只会被推入到队列中一次。这种在 缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要 的。然后,在下一个的事件循环 tick 中,Vue 刷新队列并执行实际(已去重的)工作。

9. 简述 mixin、extends 的覆盖逻辑

(1)mixin 和 extends

mixin 和 extends 均 是 用 于 合 并 、 拓 展 组 件 的 , 两 者 均 通 过 mergeOptions 方法实现合并。

mixins 接收一个混入对象的数组,其中混入对象可以像正常的实例 对象一样包含实例选项,这些选项会被合并到最终的选项中。Mixin 钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。

extends 主要是为了便于扩展单文件组件,接收一个对象或构造函数。

(2)mergeOptions 的执行过程

规 范 化 选 项 ( normalizeProps 、 normalizelnject 、normalizeDirectives)

对未合并的选项,进行判断

10. 子组件可以直接改变父组件的数据吗?

子组件不可以直接改变父组件的数据。这样做主要是为了维护父子组 件的单向数据流。每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。如果这样做了,Vue 会在浏览器的控制台中 发出警告。Vue 提倡单向数据流,即父级 props 的更新会流向子组件,但是反 过来则不行。这是为了防止意外的改变父组件状态,使得应用的数据 流变得难以理解,导致数据流混乱。如果破坏了单向数据流,当应用 复杂时,debug 的成本会非常高。

只能通过 $emit 派发一个自定义事件,父组件接收到后,由父组件 修改。

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

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

相关文章

配置arm内核实现NFS功能

NFS介绍 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件&…

什么是arm-arm体系架构版本(指令集版本)-arm内核版本

1、什么是arm? arm公司:是英国一家电子公司的名字,该公司成立于1990年11月,是苹果电脑,Acorn电脑集团和VLSI Technology的合资企业。Acorn曾在1985年推出世界上首个商用单芯片RISC(Reduced Instruction Se…

ARM内核——寄存器功能讲解

根据“ARM-thumb 过程调用标准”: 通用寄存器 通用寄存器包含R0到R12,13个寄存器 R0-R3 用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。如果调用函数需…

ARM内核版本

ARM架构CPU发展历程: (https://en.wikipedia.org/wiki/ARM_architecture#CPU_modes)

嵌入式芯片的硬件组成(ARM内核)

嵌入式最小硬件系统的6部分 基于ARM内核的嵌入式芯片的硬件组成 连接到系统总线上的高带宽组件主要包括: 存储器及控制器、电源管理与时钟控制器、中断控制器、DMA控制器、GPIO端口、互联通信组件、定时计数组件、模拟通道组件。

ARM内核全解析

前不久 ARM 正式宣布推出新款 ARMv8架构 的 Cortex-A5 0处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额。Cortex-A50是继 Cortex-A15 之后的又一重量级产品,将会直接影响到主流PC市场的占有…

ARM 内核分类

根据ARM官方资料和网上资料整理。 先来一张Architecture的图片 ARM微处理器系列 ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有 ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和…

ARM内核结构

ARM内核有4个功能模块T、D、M、I,可供生产厂商根据不同用户的要求来配置生产ARM芯片。 其中:T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核中放置了用于调试的结…

ARM内核、指令集等简介

文章目录 1.ARM架构学习1.1.ARM相关背景介绍 2.ARM指令集2.1 A32指令集2.2 A64指令集2.3 代码举例说明 3.ARM与RISC、CISC的关系4.ARM与哈佛结构、冯诺依曼结构 1.ARM架构学习 ARM即是公司名,是一家英国的公司,也是芯片名,随便嵌入式设备的发…

ARM 之五 发展史及各时期内核(ARM1 ~ ARM11 / Cortex)介绍

很久很久以前   1978年12月5日,物理学家赫尔曼豪泽(Hermann Hauser)和工程师 Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年&a…

ARM内核与架构

1、ARM架构分类 ARM架构发展至今分为 ARMv1~ARMv8 ,不同架构之间指令集存在差异。根据架构类型又开发出不同内核,常用的 ARMv7 架构有三种类型的内核: 1)Cortex-A:用于高性能应用,主要支持分页内存管理单…

ARM内核科普

从1985年ARMv1架构诞生起,到2011年,ARM架构已经发展到了第八代ARMv8。 Cortex-A32/35/53/57/72/73/77/78采用的都是ARMv8架构,这是ARM公司的首款支持64位指令集的处理器架构。 3) ARM11之前的处理器和指令集架构 ARM11芯片之前&…

IDC发布中国低代码市场报告,得帆独立低代码市占率第一

近日,国际数据公司IDC公布了《2022下半年中国低代码与零代码软件市场跟踪报告》(以下简称“报告”)。 2022下半年中国低代码与零代码软件市场规模为15.6亿元人民币,得帆低代码PaaS平台凭借过硬的产品优势和深厚的客户实践经验&am…

初识ARM(内核、SoC)

对于刚接触到ARM的人来说,可能仅仅知道ARM是一种内核,是一种处理器(CPU),但是,每当我们思考ARM内核是如何发挥作用、ARM处理器到底有什么用的时候,我们可能就会脑袋空白。当然,作为初…

FFmpeg解码32k大分辨率出现如下错误:Picture size 32768x32768 is invalid

最近找到一张32k的jpeg图片,尝试用ffmpeg来进行解码,命令如下: ffmpeg -i enflame_32768-32768-420.jpg 32.yuv结果出现Picture size 32768x32768 is invalid的错误: 找到报错的代码文件imgutils.c,以及函数&#x…

YOLOv8教程系列:四、使用yolov8仓库训练自己的图像分类数据集(含推理预测)

YOLOv8教程系列:四、使用yolov8仓库训练自己的图像分类数据集(含推理预测) 0.引言 Yolov8是最新一代的You Only Look Once目标检测模型,它由Ultralytics研究团队在2022年开发。相比于之前的Yolo版本,Yolov8在速度和精度上都有很大的提升。 …

IE实现PDF在线预览功能

背景: chrome、firefox、edge浏览器默认可以在线预览pdf的,因为chrome默认自带PDF reader的 但是IE这个微软早已经放弃垃圾浏览器,国内还有好多大型国有企业在用,所以还得做兼容 步骤 1、下载安装 Adobe Reader( Adb…

Ubuntu64位安装Adobe Reader 9.5.5

Aodbe Reader在Linux下的效果比Foxit Reader(福昕阅读器)要好一些,尤其对于中文文档而言。本文介绍Adobe Reader在Ubuntu下的安装,文章《Ubuntu12.04 64位安装Foxit Reader》则介绍Foxit Reader的安装。 Aodbe Reader的安装步骤如…

Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

环境搭建 IDE下载地址: https://www.visualstudio.com/zh-hans/downloads/选择:Visual Studio Community 2017 适用于学生、开源和个人开发人员的功能完备的免费 IDE无脑下一步,然后到这里的时候注意选择。我这么选主要是因其稍微显得轻便…

实战:Windows 2008 WDS使用参考计算机创建安装映像

12.3 实战:使用参考计算机创建安装映像 您可以将配置好用户工作环境的计算机作为参考计算机,使用参考计算机创建安装映像,这样使用WDS服务安装的操作系统和参考计算机的环境一样。 以下将会在参考计算机上安装AdbeRdr810_zh_CN.exe软件&#…