vue的十大面试题详情

1 v-show与v-if区别 

v-if与v-show可以根据条件的结果,来决定是否显示指定内容:

  • v-if: 条件不满足时, 元素不会存在.

  • v-show: 条件不满足时, 元素不会显示(但仍然存在).

<div id="app"><button @click="show = !show">点我</button><h1 v-if="show">Hello v-if.</h1><h1 v-show="show">Hello v-show.</h1>
</div>
<script>var app = new Vue({el:"#app",data: {show:true}});
</script>


 2 $nextTick   

定义:用于在下次 DOM 更新循环结束之后执行回调函数。它可以用来确保在更新 Vue 组件后,再执行一些操作或获取更新后的 DOM 元素。

作用:DOM更新完毕后执行回调函数

原理:promise.then->Mutation0bserver->setImmdiate(宏任务)- >setTimeout

  methods: {edit () {// 改数据->dom更新,需要时间->等待dom更新完毕 操作domthis.isShow = trueconsole.log(this.$refs.txtRef)// setTimeout(() => {//   this.$refs.txtRef.focus()// }, 2000)// this.$nextTick// DOM更新完毕后执行回调函数// 原理 promise.then->MutationObserver->setImmdiate->setTimeoutthis.$nextTick(() => {this.$refs.txtRef.focus()})}


3 生命周期


vue2:

  beforecreat(创建前)、  created(创建后)、 beforemount(挂载前)、 mounted(挂载后)、beforeupdate(更新前)、updated(更新后)、beforedestroy(销毁前)、destroyed(销毁后)

vue3

keep-live有两个生命周期

activated(){}当组件被激活的时候
deactivated(){当组件离开的时候

4 插槽

 1、默认插槽

//子组件
<slot>slot插槽</slot> //方法一<slot name="default">slot插槽</slot> //方法二
//父组件
<exercise-first>slot插槽</exercise-first>

2、具名插槽

子组件<slot name="header"></slot>
//父组件  v-slot:main
<exercise-first><template v-slot:header><div>具名组件</div></template>
</exercise-first>

3、作用域插槽

作用域插槽的语法: v-slot:slotName="parameter",其中 slotName 是插槽的名称,parameter 是接收子组件数据的参数。

父组件中定义的<template v-slot:slotname2="obj">
子组件中定义的<slot name="slotname2" :item1='item' value="111" ></slot>

案例:

<!-- 子组件 -->
<template><div><slot name="item" v-for="item in items" :item="item"></slot></div>
</template><!-- 父组件 -->
<template><div><template v-slot:item="{ item }"><p>{{ item }}</p></template></div>
</template>


 5 vuex


vue2

1. State(状态):用于存储应用程序的状态数据,即存储在Vuex中的数据。
2. Getters(获取器):用于从状态中派生出新的数据,类似于Vue组件中的计算属性。
3. Mutations(变更):用于修改状态的方法,必须是同步的。每个mutation都有一个字符串类型的事件类型和一个回调函数,用于实际修改状态。
4. Actions(动作):类似于mutations,但可以包含异步操作。Actions用于触发mutations,可以包含任意异步操作,如API请求等。
5. Modules(模块):用于将Vuex的状态分割成模块,每个模块都有自己的state、getters、mutations和actions。

vue3

Pinia`的核心概念有:`state`,`getter`,`action`三个部分

vuex和pinia区别

1. Vuex`的核心概念有:`state`,`getters`,`mutations`,`actions`,`moudles`五个部分
2. `Pinia`的核心概念有:`state`,`getter`,`action`三个部分

1. `Vuex`对state的修改推荐使用`mutations`中的方法进行修改,
2. `Pinia`直接对state进行修改

1. Pinia中 getter,action 也可通过 `this` 访问整个 store 实例


 6 vue3与vue2区别
 

vue2语法特点:

  1. 选项式api

  2. 缺点:数据和逻辑分离

  3. 维护不太好

vue3语法特点:与ts比较好

  1. 组合式api

  2. 代码量变少

  3. 分散式维护变成集中式维护

  4. 按需引入,体积更小


 7 keep-alive

动态组件 ---根据is属性值渲染对应组件

<keep-alive><component  :is="comName"></component></keep-alive>


8 路由模式

hash模式

   默认hash 哈希模式,地址上带#优点:兼容性好缺点:不美观原理 :#后面地址改变不会引起页面刷新,路由会检测到地址变化(window.onhashchange),拿到最新的地址找到
匹配的组件进行渲染mode: 'hash',

history模式 

history模式 地址上不带#
优点:美观 缺点:兼容不好
原理:采用h5的history相关api(pushState, replaceState)
必须服务器支持,配合后台
在脚手架环境下,默认支持history模式


9 常见指令修饰符

  1. .prevent:阻止默认事件行为。
  2. .stop:阻止事件冒泡。
  3. .capture:事件捕获模式,即在捕获阶段处理事件。
  4. .self:只在事件是从触发元素自身触发时触发回调。
  5. .once:只触发一次事件回调。
  6. .passive:指示浏览器不要阻止事件的默认行为。
  7. .native:监听组件根元素的原生事件。
  8. .sync:双向绑定,用于父子组件之间的数据传递

10 指令及其自定义指令


   指令:

v-text:把数据当作纯文本显示.
v-html:遇到html标签,解析标签

v-if:根据表达式的真假条件,对元素 
v-for:基于源数据多次渲染元素或模板块。
v-on:绑定事件监听器,用于监听 DOM 事件。
v-bind:动态地绑定一个或多个特性,或一个组件 prop 到表达式。简写:冒号。。。
v-model:在表单控件或组件上创建双向绑定。
v-show:根据表达式的真假值,切换元素的显示状态。
v-cloak:这个指令保持在元素上直到关联实例结束编译。
v-pre:跳过这个元素和所有子元素的编译过程。
v-once:只渲染元素和组件一次。

自定义指令

vue2

全局方式

// 全局注册一个自定义指令
Vue.directive('focus', {// 当被绑定的元素插入到 DOM 中时……inserted: function (el) {// 聚焦元素el.focus()}
})

局部方式

// 在组件中定义局部指令
directives: {focus: {// 指令的定义inserted: function (el) {el.focus()}}
}

vue3

全局方式

app.directive('color',{//直走一次mounted(el,binding){//     //el是指令所在的元素。binding指令的值el.style.backgroundColor=binding.value},// //更新就会走,会是响应式updated(el,binding){el.style.backgroundColor=binding.value}
})

局部方式

<template><div><input type="text" v-focus><custorm-comp/></div>
</template><script setup>const vFocus={mounted(el){el.focus()//聚焦}}
</script><style></style>

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

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

相关文章

ELAdmin 隐藏添加编辑按钮

使用场景 做了一个监控模块&#xff0c;数据都是定时生成的&#xff0c;所以不需要手动添加和编辑功能。 顶部不显示 可以使用 true 或者 false 控制现实隐藏 created() {this.crud.optShow {add: false,edit: false,del: true,download: true,reset: true}},如果没有 crea…

ubuntu服务器部署gitlab docker并配置nginx反向代理https访问

拉取镜像 docker pull gitlab/gitlab-ce运行容器 docker run --detach \--publish 9080:80 --publish 9022:22 --publish 9443:443\--namegitlab \--restartalways \--volume /home/docker/gitlab/config:/etc/gitlab \--volume /home/docker/gitlab/logs:/var/log/gitlab \-…

直接查看电脑几核芯几线程的方法

之前查看电脑几核芯几线程时都是点击 此电脑->属性->设备管理器->处理器 但是这样并不能判断是否有多线程 譬如这里&#xff0c;是2核芯2线程还是4核芯&#xff1f; 实际上&#xff0c;打开任务管理器后点击性能查看核芯线程数即可 所以示例这台电脑是4核芯而不是2…

PDF控件Spire.PDF for .NET【安全】演示:如何在 PDF 中添加签名字段

Spire.PDF for .NET 是一款独立 PDF 控件&#xff0c;用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库&#xff0c;开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理&#xff0c;且无需安装 Adobe Acrobat。 E-iceblue 功能类库Spire 系列文档处…

html的表单标签(上):form标签和input标签

表单标签 表单是让用户输入信息的重要途径。 用表单标签来完成与服务器的一次交互&#xff0c;比如你登录QQ账号时的场景。 表单分成两个部分&#xff1a; 表单域&#xff1a;包含表单元素的区域&#xff0c;用form标签来表示。表单控件&#xff1a;输入框&#xff0c;提交按…

微信小程序swiper 视频中间大,两边小,轮播滑到中间视频自动播放组件教程

静态效果&#xff1a; 进入下面小程序可以体验效果&#xff0c;点击底部 看剧 栏目 一、创建小程序组件 二、代码 1、WXML <view class"swiper-wrapper" style"background-image:url(/asset/image/hot-banner.jpg);background-size: 100% 100%;">…

android 15

https://android-developers.googleblog.com/2024/02/first-developer-preview-android15.html android 15的预览版出了&#xff0c;这个版本的发布计划大概是这样的&#xff08;大约是今年8月发布最终版本&#xff09; https://developer.android.com/about/versions/15/over…

Java+Swing+Txt实现通讯录管理系统

目录 一、系统介绍 1.开发环境 2.技术选型 3.功能模块 4.系统功能 1.系统登录 2.查看联系人 3.新增联系人 4.修改联系人 5.删除联系人 5.工程结构 二、系统展示 1.登录页面 2.主页面 3.查看联系人 4.新增联系人 5.修改联系人 三、部分代码 Login FileUtils …

BUGKU-WEB 源代码

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 你说啥就是啥&#xff1a;去源代码吧 相关工具 URL解码平台&#xff1a;https://www.iamwawa.cn/urldecode.html 解题步骤 随便输入试试 2. 看看源码 存在script&#xff1a; <script> …

芯课堂 | 一种无霍尔直流无刷电机控制器

​本次介绍一种无霍尔直流无刷电机控制器&#xff0c;该电机控制器包括&#xff1a;MCU控制模块的输出端连接预驱动模块的输入端&#xff0c;预驱动模块的输出端连接驱动模块的输入端&#xff0c;驱动模块的输出端连接无霍尔电机的三相输入端&#xff1b;驱动模块包括由三路集成…

【前端】Vue-Cli 快速创建Vue3项目及一些项目初始化相关

文章目录 前言1. 安装1.1 安装 Vue 脚手架1.2 创建项目1.3 本地运行项目 2. 推送到仓库2.1 远程仓库准备2.2 关于gitIgnore文件2.3 通过git推送至远程仓库 3. 补充与总结3.1 npm 版本是否要升级到最新&#xff1f;3.2 这个项目建议的各种版本3.3 一般前端gitIgnore文件3.4 推荐…

二.重新回炉Spring Framework:Spring Framework主要组件概览

1.写在前面的话 这里主要简单说一下Spring Framework的几个核心组件的总体情况。为了比较直观&#xff0c;这里使用了ClassPathXmlApplicationContext的类图来进行说明。它基本上包含了 IoC 体系中大部分的核心类和接口。类图如下图所示&#xff1a; 2.Resource 组件体系 R…

【C语言】长篇详解,字符系列篇2-----受长度限制的字符串函数,strncpy,strncat,strncmp函数的使用和模拟实现【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本期系列为【【C语言】长篇详解&#xff0c;字符系列篇2-----“混杂”的字符串函数&#xff0c;字符串函数的使用和模拟实现【图文详解】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&#x…

【常识】大数据设计基础知识

底层存储&#xff1a;hadoop&#xff08;hdfsmapreduce&#xff09; Hadoop已经有十几年的历史&#xff0c;它是大数据领域的存储基石&#xff0c;HDFS目前仍然没有成熟替代品;MapR 文件系统在业内已经具有一定知名度了&#xff0c;不仅 MapR 宣布它自己的文件系统比 HDFS 快2-…

Python 文本处理和语义分析2 使用m3e对文本向量化

说明 向量化将会是下一阶段演进的目标。 在过去的实践中&#xff0c;向量或者矩阵其实是最贴近工具端的。 以sklearn为例&#xff0c;虽然原始数据可能还是自然语言&#xff0c;但是在最终执行 fit或者predict之前&#xff0c;数据一般都转为了矩阵形态(numpy)。也就是说&…

MongoDB文档插入

文章目录 MongoDB文档插入对比增删改查文档插入 MongoDB写安全机制非确认式写入 MongoDB文档查询参数说明查询操作符比较查询操作符逻辑查询操作符元素查询操作符数组查询操作符 模糊查询区别:$regex操作符中的option选项 MongoDB游标介绍游标函数手动迭代游标示例游标介绍 Mon…

韶音获36氪年度企业称号,开放式创新成年度焦点

近日,在36氪的商业之王大会上,年度开放式创新企业、年度新经济高成长企业等榜单揭晓,阿里云、保时捷、美的、蚂蚁集团、科大讯飞等纷纷上榜,而运动耳机的领导品牌Shokz韶音,以其在开放式/不入耳耳机领域深厚的积累,同样获奖。韶音运动舒适耳机新推出的爆款产品——不入耳蓝牙耳…

2024国产中文免费版数据恢复软件EasyRecovery易恢复专业版

EasyRecovery易恢复专业版是全球最好的数据恢复软间&#xff0c;文件恢复专家。EasyRecovery是一款操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序&#xff0c;它不会往源驱上写任何东西&#xff0c;也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或…

软件实例分享,操作简单美发店会员登记记账本vip会员管理系统软件教程

软件实例分享&#xff0c;操作简单美发店会员登记记账本vip会员管理系统软件教程 一、前言 以下软件程序教程以 佳易王美发店会员管理系统软件V16为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、新会员可以直接使用手.机号&#xff0c;不需…

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈

202427读书笔记|《猫的自信&#xff1a;治愈系生活哲学绘本》——吸猫指南书&#xff0c;感受猫咪的柔软慵懒与治愈 《猫的自信&#xff1a;治愈系生活哲学绘本》作者林行瑞&#xff0c;治愈系小漫画绘本&#xff0c;10分钟可以读完的一本书&#xff0c;线条明媚&#xff0c;自…