前端开发面试题总结-vue2框架篇(二)

Vue2高频问答

一、为什么 Vue 的 data 属性必须声明为返回一个初始数据的函数?

回答重点:
Vue 的 data 属性声明成一个返回初始数据的函数,是为了确保每个组件实例都有独立的状态。通过这种方式,避免了组件使用相同的数据对象导致的状态共亨和互相干扰。
扩展知识
1)组件实例的独立性
Vue 中,每个组件实例都有自己的状态。假如 data 属性是一个对象而不是函数,那么多个实例将共享同一个数据对象。当一个实例修改数据时,其他实例的状态也会受到影响,导致数据污染。通过将 data声明为函数,每个组件实例都会调用这个函数,从而返回独立的数据对象。这保证了各个实例的互不干涉。
2)Vue 实例和单文件组件的区别
在 vue 实例(如 new vue创建的根实例)中,data 可以是一个对象,因为根实例通常只有一个实例。然而,在单文件组件 (如.vue 文件)中,由于你可能会创建多个组件实例,所以data必须声明为函数。

二、Vue 在 created 和 mounted 这两个生命周期钩子中请求数据有什么区别?

在 Vue.js 中,created 和 mounted 都是常用的生命周期钩子,但它们在使用场景和请求数据时有几个主要的区别。
1)created :这个钩子在实例被创建之后调用。在这个阶段,组件实例已经完成了数据观察、计算属性和方法的初始化,但还没有挂载到 DOM 上。这意味着你可以在这个阶段进行一些数据请求,但无法访问 DOM 元素。
2)mounted:这个钩子在实例被挂载之后调用,在这个阶段,所有的子组件也会一起挂载完成。这意味着你可以访问 DOM 元素并操作它们。如果你需要做一些 DOM 相关的操作或等待组件完全挂载后再执行某些逻辑,可以选择这个钩子。

三、Vue Router 的 hash 模式和 history 模式有什么区别?

Vue Router 的 hash 模式和 history 模式主要区别在于 URL 的表现形式和实现方式。
1)hash 模式:URL中会出现#号,例如:http://example.com/#/home。hash模式的原理是基于 window.location.hash 的变化,来实现更新视图而不重新加载页面。hash 模式的核心特性是利用了浏览器对哈希的支持,使得页面在哈希值变化时不会重新加载全部内容。
2)history模式:URL是普通路径形式,例如:http:/example.com/home。history模式的原理是基于 HTML5的 history.pushstate和 history.replacestate,通过这两个 AP|来操作浏览器历史记录,改变 URL 同时不重新加载页面。所以使用 history 模式时,需要在服务端进行配置,让所有路由都指向同一个入口页面,否则会出现 404 错误。

四、为什么 Vue2 中给对象添加新属性后,界面没有刷新?

这是因为 Vue 的响应式系统对对象的属性增加进行了限制。Vue 2x不支持对象动态添加新属性的检测,所以 Vue 无法检测到对对象属性新增的变化,从而也无法自动更新界面。

五、vue中父子组件的生命周期钩子函数执行顺序

vue中的组件生命周期是: 四大阶段八大钩子, 我这里就用选项式api来和您说说他们的执行顺序

  1. 在前两个阶段: 创建和挂载阶段, 执行顺序分别是:
    beforeCreate(父)—>created(父)---->beforeMount(父)—>beforeCreate(子)—>created(子)—>beforeMount(子)—>mounted(子) —> mounted(父)
  2. 在更新阶段
    beforeUpdate(父) —> beforeUpdate(子) —> updated(子) —> updated(父)
  3. 销毁阶段
    beforeDestroy(父) —> beforeDestroy(子) —> destroyed(子) —> destroyed(父)

六、用vue做管理系统开发时, 用到了哪些UI组件库?

管理系统: 多数都是二次开发(不是从零到一)
二次开发常见的模板库: vue-element-admin , pure-admin
vue2: ElementUI, Ant Design Vue
vue3: ElementPlus, Ant Design Vue

七、22、说一说计算属性和watch的区别?

我先说下计算属性和watch的概念:
计算属性:

  1. 当一个属性的结果需要通过其它数据运算得来, 此时就可以把这个属性定义成计算属性
  2. 计算属性是有缓存的, 多处去使用计算属性也只会计算一次, 除非依赖的数据发生变化
  3. 计算属性有完整写法, 可以通过get和set方法实现
  4. 应用场景: 购物车总价, 全选
    watch:
  5. watch是一个侦听器, 如果某个属性的值发生变化, 我们想要去做一些业务操作, 我们就可以用watch去侦听该属性
  6. watch可以通过deep属性去实现深度侦听
  7. 应用场景: 实时翻译

再说一下计算属性和watch的区别:

  1. 计算属性是属性, watch则是对属性的侦听
  2. 计算属性内部不能有异步的操作, 但是watch是可以有异步操作的

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

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

相关文章

Web第二次方向考核复盘

一、简答题 1. &#xff08;1&#xff09;为什么要清除浮动&#xff1f; 答&#xff1a;当子元素浮动时会脱离文档流&#xff0c;父元素无法正确计算子元素高度导致高度、边框异常显示。同时会影响后续文档流布局。 <style>.box1 {border: solid 2px #000;}.child1 {fl…

Linux入门(十八)read函数

read 读取控制台输入 基本语法 read 选项 参数 选项 -p 指定读取值时的提示符 -t 指定读取值时等待的时间&#xff08;秒&#xff09;&#xff0c;如果没有在指定的时间内输入&#xff0c;就不再等待了 参数 变量&#xff1a;指定读取值的变量名 实例&#xff1a; 1、读取控制…

Python 文件操作详解

文章目录 Python 文件操作详解一、文件操作的基本流程二、文件打开模式详解1. 基本模式2. 扩展模式3. 模式组合示例 三、文件操作方法大全1. 打开和关闭文件2. 读取文件内容3. 写入文件内容4. 文件指针操作 四、文件编码处理五、二进制文件操作六、常见文件操作场景1. 文件内容…

用AI配合MCP快速生成n8n工作流

在数字化时代的浪潮中&#xff0c;AI技术正以前所未有的速度改变着我们的生活和工作方式。从智能家居到智能办公&#xff0c;从数据分析到自动化流程&#xff0c;AI的应用场景无处不在。今天&#xff0c;我们将带你走进一个充满创新与效率的世界&#xff0c;探索如何通过AI大眼…

ArkUI-X框架LogInterface使用指南

ArkUI-X框架支持日志拦截能力&#xff0c;Android侧提供原生接口&#xff0c;用于注入LogInterface接口&#xff0c;框架日志及ts日志通过该接口输出&#xff0c;本文的核心内容是介绍如何在Android平台上有效利用ArkUI-X框架的LogInterface拦截日志。 Android平台创建ArkUI-X…

函数重载与函数模板

函数重载与函数模板 函数重载 函数组成 返回类型 函数名称(参数列表){函数体}函数签名&#xff1a;函数名称(参数列表) C 允许定义同名函数&#xff0c;前提是它们具有不同的签名。这被称为函数重载 。 C 编译器通过检查调用中参数的数量、类型和顺序来选择要调用的适当函…

NLP学习路线图(四十六):可解释性

在自然语言处理(NLP)技术重塑人机交互、信息检索甚至司法决策的今天,一个尖锐的问题愈发凸显:当模型在文本分类中判定你的贷款申请被拒,或在简历筛选中将你排除,你是否有权追问一句——“为什么?” 一、黑箱迷雾:NLP模型的不透明困境 现代NLP的核心驱动力——深度神经…

uniapp的app项目,在华为pad上运行,页面显示异常

最开始为了好调试&#xff0c;运行成h5在浏览器调试的&#xff0c;调完以后&#xff0c;放到pad上。。。天塌了&#xff0c;所有页面异常&#xff0c;感觉被放大了好多&#xff0c;而且页面很乱。。。 查了很多资料&#xff0c;说把px改为rpx&#xff0c;好&#xff0c;全部改…

Linux中的连接符

Linux中的&&连接符 和其它语言类似&#xff0c;在Shell中&#xff0c;&&是一个逻辑运算符&#xff0c;表示逻辑AND&#xff0c;用于连接多个条件表达式 不同的是&#xff0c;在Linux系统中&#xff0c;&&不仅可以连接条件表达式&#xff0c;而且还能连…

装饰模式Decorator Pattern

模式定义 动态地给对象增加额外的职责 对象结构型模式 模式结构 Component&#xff1a;抽象构件 ConcreteComponent&#xff1a; 具体构件 Decorator&#xff1a;抽象装饰类 ConcreteDecorator&#xff1a; 具体装饰类 抽象装饰类代码 public class Decorator extends Compo…

https说明

http是无状态的&#xff0c;https是在http应用层协议和tcp传输控制层之间加了一层&#xff0c;主要功能包括加密传输内容&#xff0c;校验信息是否完整&#xff0c;信息是否被篡改等。http的网络传输&#xff0c;源端应用层发送http请求&#xff0c;传输到源端的控制层&#xf…

实时操作系统(FreeRTOS、RT-Thread)RISC-V

FreeRTOS&#xff1a;FreeRTOS™ - FreeRTOS™ RT-Thread&#xff1a;rt-thread.org VxWorks&#xff1a; QNX Neutrino RTOS&#xff1a; RT-Linux&#xff1a; 一、 实时操作系统介绍 实时操作系统&#xff08;Real Time Operating System&#xff0c;简称RTOS&#xff…

Python3除标准库外更全面的XML解析方案

一、扩展解析库方案 lxml高性能解析 from lxml import etree doc etree.parse(data.xml) # XPath 2.0增强查询 nodes doc.xpath(//student[score>90]/name/text())优势&#xff1a;支持XPath 2.0语法和XSLT转换&#xff0c;比标准库快5-10倍 BeautifulSoup混合解析 fr…

同时装两个MySQL, 我在MySQL5的基础上, 安装MySQL8

目录 1. 前言 2. 下载MySQL 3. 安装MySQL 3.1 第一步:选择MySQL ​编辑 3.2 第二步:存储地址 3.3 第三步 3.4 第四步:完成基础配置 3.5 第五步 3.6 第六步:数据库密码 3.7 第七部:服务名 4. 环境变量 4.1 复制MySQL的bin地址 4.2 进入高级系统设置 4.3 PATH 4.4 更改…

Visual Studio 2022打包程序流程

Visual Studio 2022打包程序流程 打开管理拓展 安装Microsoft Visual Studio Installer Projects 关闭软件才能继续安装 安装完成后点击&#xff0c;解决方案&#xff0c;创建新项目 添加&#xff1a;setup project 打开软件的路径 复制路径 添加文件 粘贴刚才复制的路径&…

web3方法详解

web3.py 是一个功能强大的 Python 库,用于与以太坊区块链交互。它提供了多种模块和功能,涵盖账户管理、智能合约交互、交易发送、区块链数据查询等。以下是 web3.py 的主要功能模块及其用途: 1. Web3 核心模块 功能:提供基础连接、工具函数和核心功能。 常用方法: Web3(…

HTML5+JS实现一个简单的SVG 贝塞尔曲线可视化设计器,通过几个点移动位置,控制曲线的方向

三次贝塞尔曲线,二次贝塞尔曲线有什么区别 https://blog.csdn.net/xiaoyao961/article/details/148678265 SVG 贝塞尔曲线可视化设计器 下面是一个简单的贝塞尔曲线可视化设计器&#xff0c;使用 HTML5 和 JavaScript 实现。这个设计器允许你通过拖动控制点来实时调整贝塞尔曲…

Pytorch框架——自动微分和反向传播

一、自动微分概念 自动微分&#xff08;Automatic Differentiation&#xff0c;AD&#xff09;是一种利用计算机程序自动计算函数导数的技术&#xff0c;它是机器学习和优化算法中的核心工具&#xff08;如神经网络的梯度下降&#xff09;&#xff0c;通过反向传播计算并更新梯…

【Linux手册】进程的状态:从创建到消亡的“生命百态”

目录 前言 操作系统进程状态 运行状态 阻塞状态 挂起状态 Linux中具体的进程状态 R(running)运行状态 S(sleeping)阻塞状态 D(disk sleep)磁盘休眠状态 T(stopped)和t(tracing stop) X(dead)终止状态 Z(zombie)僵尸状态 僵尸进程的危害 前言 我们在运行可执行程序…

李沐--动手学深度学习 LSTM

1.从零开始实现LSTM #从零开始实现长短期记忆网络 import torch from torch import nn from d2l import torch as d2l#加载时光机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps)#1.定义和初始化模型参数&#xff…