当前位置: 首页 > news >正文

【Vue/基础知识】Vue基础知识(一)

如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识(一)

Vue

1、v-show 和 v-if 指令的共同点和不同点?

共同点:v-show 和 v-if 都是 Vue 模板指令,都用于控制组件或元素的显示或隐藏。

不同点:v-show 只是简单的控制元素的 display 属性,而不是将元素从 DOM 中移除,因此在切换显示和隐藏时,元素的状态并不会改变。v-if 则是根据表达式的真假值来切换元素的显示状态,如果表达式为 false,则元素会被移除,如果表达式为 true,则会重新渲染该元素。因此,v-if 更适用于需要频繁切换显示和隐藏的情况,而 v-show 则更适用于一开始就需要显示或隐藏的情况。


2、如何让CSS只在当前组件中起作用?

可以使用 CSS 的作用域限定来实现。在组件的 <style> 标签中使用 scoped 属性即可让该样式只在当前组件中起作用。例如:

<template><div class="my-component"></div>
</template><script>
export default {name: 'MyComponent',
}
</script><style scoped>
.my-component {/* 这里的样式只会作用于 MyComponent 组件内的元素 */
}
</style>

3、keep-alive 的作用是什么?

<keep-alive></keep-alive> 是 Vue 内置组件,用于缓存组件的实例,从而避免多次创建和销毁组件的开销。当包裹动态组件时,<keep-alive> 会在组件切换时保留该组件的状态,而不是重新渲染该组件。常见的用法是将需要缓存的组件包裹在 <keep-alive> 标签中,如下所示:

<template><div><keep-alive><component :is="currentComponent"></component></keep-alive></div>
</template><script>
export default {data() {return {currentComponent: 'ComponentA',}},
}
</script>

4、如何获取dom?

可以使用 Vue 的 $refs 属性来获取组件中的 DOM 元素。在模板中给需要获取的元素添加 ref 属性,然后在组件中通过 this.$refs 对象来获取该元素的引用。例如:

<template><div><input ref="myInput" type="text" /></div>
</template><script>
export default {methods: {doSomething() {const inputElement = this.$refs.myInput// 这里可以对 inputElement 进行操作}},
}
</script>

5、说出几种vue当中的指令和它的用法

常用的 Vue 指令包括:

  • v-if:根据表达式的真假值来切换元素的显示状态;
  • v-for:根据数组或对象的内容来渲染列表或表格;
  • v-bind:用于动态绑定 HTML 属性或组件的 prop;
  • v-on:用于监听 DOM 事件或自定义事件;
  • v-model:用于双向绑定表单元素的值;
  • v-show:用于控制元素的显示或隐藏;
  • v-cloak:用于防止页面闪动,与 CSS 配合使用。

6、vue-loader是什么?使用它的用途有哪些?

vue-loader 是一个 Webpack 的 loader,用于解析 .vue 文件。它可以将一个 .vue 文件解析成一个 Vue 组件对象,并将其编译成 JavaScript。使用 vue-loader 可以使得我们在单文件组件中编写组件的 HTML 模板、CSS 样式和 JavaScript 代码,从而让组件更加独立和可维护。vue-loader 还可以实现 CSS 模块化和 Scoped CSS 等功能。


7、为什么使用key?

在使用 v-for 指令渲染列表或表格时,为了提高渲染性能,Vue 会尽可能地复用已经存在的元素,而不是重新创建和销毁元素。但是,如果数组中的某个元素的位置发生变化,Vue 会把该元素从原来的位置移动到新的位置,而不是销毁和创建新的元素。这样可以避免频繁的 DOM 操作,提高渲染性能。

然而,在某些情况下,需要对数组中的某个元素进行增删操作,从而导致某个元素的 key 发生变化。如果没有设置 key,Vue 无法判断哪些元素是已经存在的,哪些是需要新创建的,从而可能导致渲染错误。因此,设置 key 可以帮助 Vue 更好地跟踪数组中元素的变化,从而正确地进行渲染。


8、v-modal的使用

v-model 是 Vue 中常用的一个指令,用于实现表单元素和数据之间的双向绑定。v-model 可以简化表单元素的值的获取和设置,同时也能够自动监听表单元素的变化并更新数据。v-model 可以用于 input、select、textarea 等表单元素,例如:

<template><div><input v-model="message" type="text" /><p>Message: {{ message }}</p></div>
</template><script>
export default {data() {return {message: '',}},
}
</script>

9、分别简述computed和watch的使用场景

computed 和 watch 都是 Vue 中用于监听数据变化的方法,但是它们的使用场景有所不同。

computed 用于计算属性,当需要对某个数据进行复杂的计算或格式化时,可以使用 computed 方法来获取计算结果。computed 方法可以缓存计算结果,只有当依赖的数据发生变化时,才会重新计算。computed 方法类似于一个属性,可以在模板中直接使用。

例如,可以定义一个计算属性 fullName,用于计算用户的全名:

<template><div><p>First name: {{ firstName }}</p><p>Last name: {{ lastName }}</p><p>Full name: {{ fullName }}</p></div>
</template><script>
export default {data() {return {firstName: 'John',lastName: 'Doe',}},computed: {fullName() {return this.firstName + ' ' + this.lastName},},
}
</script>

watch 用于监听数据的变化,当某个数据发生变化时,可以执行一些逻辑或异步操作。watch 方法类似于一个监听器,可以监听一个或多个数据的变化。

例如,可以定义一个 watch 方法,用于监听用户的搜索关键字,当关键字发生变化时,可以发送请求获取搜索结果:

<template><div><input v-model="search" type="text" /><ul><li v-for="item in searchResult" :key="item.id">{{ item.title }}</li></ul></div>
</template><script>
export default {data() {return {search: '',searchResult: [],}},watch: {search(newVal, oldVal) {// 发送请求获取搜索结果fetch('https://example.com/api/search?query=' + newVal).then(response => response.json()).then(data => {this.searchResult = data.results})},},
}
</script>

10、v-on可以监听多个方法吗?

可以监听多个方法。在 v-on 指令中,可以使用逗号分隔多个方法。例如:

<button v-on:click="handleClick, handleAnotherClick">Click me</button>

11、v-if和v-for的优先级

在同一个元素上,v-for 指令的优先级高于 v-if 指令。这意味着,如果一个元素同时有 v-if 和 v-for 指令,那么 v-for 指令会先被执行,然后在循环中根据 v-if 的条件进行筛选。


12、vue常用的修饰符

Vue 中常用的修饰符有以下几种:

  • .prevent:阻止默认事件;
  • .stop:阻止事件冒泡;
  • .capture:使用事件捕获模式;
  • .self:只当事件在该元素本身(而不是子元素)触发时触发回调;
  • .once:只触发一次回调;
  • .passive:告诉浏览器该事件监听器不会调用
  • .preventDefault(),可以优化页面滚动性能。

13、vue中 :is 作用

在 Vue 中,:is 是一个动态组件的特殊属性,用于在运行时动态地绑定组件类型。

通常,我们在模板中使用组件时会这样写

<template><div><my-component></my-component></div>
</template>

使用:is后我们可以这样写:

<template><div><component :is="componentType"></component></div>
</template>

这里的componentType是一个在组件实例中定义的计算属性或者 data,它的值可以是任何组件的名称。

通过这种方式,可以在不同的组件之间切换,从而实现动态的组件渲染。

注意,当使用:is时,需要在组件名前添加前缀,例如:

<component :is="'my-' + componentName"></component>

这样做是因为在某些情况下,Vue 会将组件名解释为原生 HTML 元素,例如<table>、<tr>等,所以需要添加前缀以明确告诉 Vue 这是一个组件名。

相关文章:

【Vue/基础知识】Vue基础知识(一)

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识&#xff08;一&#xff09; 1、v-show 和 v-if 指令的共同点和不同点&#xff1f; 共…...

Iceberg实战踩坑指南

第 1 章 介绍 Apache Iceberg 是一种用于大型分析数据集的开放表格&#xff0c;Iceberge 向 Trino 和 Spark 添加了使用高性能格式的表&#xff0c;就像 Sql 表一样。 Iceberg 为了避免出现不变要的一些意外&#xff0c;表结构和组织并不会实际删除&#xff0c;用户也不需要特…...

预告|2月25日 第四届OpenI/O 启智开发者大会昇腾人工智能应用专场邀您共启数字未来!

如今&#xff0c;人工智能早已脱离科幻小说中的虚构想象&#xff0c;成为可触及的现实&#xff0c;并渗透到我们的生活。随着人工智能的发展&#xff0c;我们正在迎来一个全新的时代——数智化时代。数据、信息和知识是这个时代的核心资源&#xff0c;而人工智能则是这些资源的…...

UnRaid虚拟机安装OpenWrt软路由

文章目录0、前言1、Openwrt虚拟机安装1.1、前提&#xff0c;需要先在UnRaid中开启虚拟机&#xff1a;1.2、下载OpenWrt虚拟机镜像并上传至UnRaid共享文件夹1.3、创建OpenWrt虚拟机2、开启并设置OpenWrt虚拟机2.1、修改OpenWrt管理ip2.2、OpenWrt的上网设置0、前言 最近折腾了很…...

开发日记-lombok

开发日记-lombok环境问题解决方案&#xff1a;1 Data注解失效 无法正常生成 get和set方法2 RequiredArgsConstructor(onConstructor _(Lazy)) 符号_无法识别环境 idea2020.1lombok1.18.24jdk1.8 问题 Data注解失效 无法正常生成 get和set方法RequiredArgsConstructor(onCons…...

Web3中文|2023年zk赛道爆发,即将推出的Polygon zkEVM有多重要?

2月15日&#xff0c;以太坊第2层解决方案提供商Polygon终于公布了备受期待的扩展更新&#xff0c;其零知识以太坊虚拟机&#xff08;zkEVM&#xff09;主网的测试版定于3月27日发布。 据官方消息报道&#xff0c;自去年10月上线测试网以来&#xff0c;已取得许多重要的里程碑&…...

【自然语言处理】主题建模:Top2Vec(理论篇)

主题建模&#xff1a;Top2Vec&#xff08;理论篇&#xff09;Top2Vec 是一种用于 主题建模 和 语义搜索 的算法。它自动检测文本中出现的主题&#xff0c;并生成联合嵌入的主题、文档和词向量。 算法基于的假设&#xff1a;许多语义相似的文档都可以由一个潜在的主题表示。首先…...

【ICLR 2022】重新思考点云中的网络设计和局部几何:一个简单的残差MLP框架

文章目录RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORKPointMLP残差点模块几何仿射模块精简版模型&#xff1a;PointMLP-elite实验结果消融实验RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESI…...

《MySQL学习》 count(*) 原理

一 . count&#xff08;*&#xff09;的实现方式 MyISAM 引擎把一个表的总行数存在了磁盘上&#xff0c;因此执行 count() 的时候会直接返回这个数&#xff0c;效率很高&#xff1b; 而 InnoDB 引擎就麻烦了&#xff0c;它执行 count(*) 的时候&#xff0c;需要把数据一行一行…...

时间序列数据预测的类型

本文主要内容是使用LSTM网络进行不同类型的时间序列预测任务&#xff0c;不涉及代码&#xff0c;仅仅就不同类型的预测任务和数据划分进行说明。 参考文章&#xff1a;https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/ 注&#xf…...

sk_buff结构体成员变量说明

一. 前言 Socket Buffer的数据包在穿越内核空间的TCP/IP协议栈过程中&#xff0c;数据内容不会被修改&#xff0c;只是数据包缓冲区中的协议头信息发生变化。大量操作都是围绕sk_buff结构体来进行的。 sk_buff结构的成员大致分为3类&#xff1a;结构管理域&#xff0c;常规数据…...

springbatch设置throttle-limit参数不生效

背景描述 当springbatch任务处理缓慢时&#xff0c;就需要使用多线程并行处理任务。 参数throttle-limit用于控制当前任务能够使用的线程数的最大值。 调整throttle-limit为10时&#xff0c;处理线程只有8&#xff0c;再次增大throttle-limit值为20&#xff0c;处理线程依旧为…...

用 tensorflow.js 做了一个动漫分类的功能(一)

前言&#xff1a;浏览某乎网站时发现了一个分享各种图片的博主&#xff0c;于是我顺手就保存了一些。但是一张一张的保存实在太麻烦了&#xff0c;于是我就想要某虫的手段来处理。这样保存的确是很快&#xff0c;但是他不识图片内容&#xff0c;最近又看了 mobileNet 的预训练模…...

看完这篇Vue-element-admin,跟面试官聊骚没问题

Vue-element-admin vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 element-ui实现。它使用了最新的前端技术栈&#xff0c;内置了 i18 国际化解决方案&#xff0c;动态路由&#xff0c;权限验证&#xff0c;提炼了典型的业务模型&#xff0c;提供了丰富…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(5)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述&#xff1a; 二、服务器环境说明 三、具体任务&#xff08;每个任务得分以电子答题卡为准&#xff09; A-1任务一 登录安全加固&#xff08;Windows&#xff09; 1.密码策略 a.密码策略必须同时满足大小写字母、数…...

基于Java+SpringBoot+Vue+Uniapp前后端分离商城系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《Spring家族及…...

新建ES别名 添加别名 切换别名

# 查询别名指向到哪个索引 GET bebd_factory_search/_alias # 查询这个索引使用了什么别名 GET bebd_factory_search_1588250935622/_alias # 删除索引 DELETE bebd_factory_search_1588250935622 # 新建别名 POST /_aliases { "actions": [ { "ad…...

MySQL —— 内外连接

目录 表的内外连接 一、内连接 二、外连接 1. 左外连接 2. 右外连接 表的内外连接 表的连接分为内连和外连 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面博客中的查询都是内连接&#xff0c;也是在开发过程中使用的最多…...

EXCEL中文本和数字的相互转换方法

将EXCEL中存为文本的数字转换成数字 如果在 Excel 中&#xff0c;将数字存储为文本格式&#xff0c;可以通过以下步骤将其转换为数字&#xff1a; 选中需要转换格式的单元格或者整列&#xff1b;右键单击&#xff0c;选择“格式单元格”&#xff1b;在弹出的对话框中选择“常…...

React源码分析6-hooks源码

本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。 hooks 相关数据结构 要理解 hooks 的执行过程&#xff0c;首先想要大家对 hooks 相关的数据结构有所了解&#xff0c;便于后面大家顺畅地阅读代码。 Hook 每一个 hooks 方法都会生成一个类型为 Hook 的对象&#xff…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...