【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基础知识(一)
如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识(一) 1、v-show 和 v-if 指令的共同点和不同点? 共…...
Iceberg实战踩坑指南
第 1 章 介绍 Apache Iceberg 是一种用于大型分析数据集的开放表格,Iceberge 向 Trino 和 Spark 添加了使用高性能格式的表,就像 Sql 表一样。 Iceberg 为了避免出现不变要的一些意外,表结构和组织并不会实际删除,用户也不需要特…...
预告|2月25日 第四届OpenI/O 启智开发者大会昇腾人工智能应用专场邀您共启数字未来!
如今,人工智能早已脱离科幻小说中的虚构想象,成为可触及的现实,并渗透到我们的生活。随着人工智能的发展,我们正在迎来一个全新的时代——数智化时代。数据、信息和知识是这个时代的核心资源,而人工智能则是这些资源的…...
UnRaid虚拟机安装OpenWrt软路由
文章目录0、前言1、Openwrt虚拟机安装1.1、前提,需要先在UnRaid中开启虚拟机:1.2、下载OpenWrt虚拟机镜像并上传至UnRaid共享文件夹1.3、创建OpenWrt虚拟机2、开启并设置OpenWrt虚拟机2.1、修改OpenWrt管理ip2.2、OpenWrt的上网设置0、前言 最近折腾了很…...
开发日记-lombok
开发日记-lombok环境问题解决方案: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日,以太坊第2层解决方案提供商Polygon终于公布了备受期待的扩展更新,其零知识以太坊虚拟机(zkEVM)主网的测试版定于3月27日发布。 据官方消息报道,自去年10月上线测试网以来,已取得许多重要的里程碑&…...
【自然语言处理】主题建模:Top2Vec(理论篇)
主题建模:Top2Vec(理论篇)Top2Vec 是一种用于 主题建模 和 语义搜索 的算法。它自动检测文本中出现的主题,并生成联合嵌入的主题、文档和词向量。 算法基于的假设:许多语义相似的文档都可以由一个潜在的主题表示。首先…...
【ICLR 2022】重新思考点云中的网络设计和局部几何:一个简单的残差MLP框架
文章目录RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORKPointMLP残差点模块几何仿射模块精简版模型:PointMLP-elite实验结果消融实验RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESI…...
《MySQL学习》 count(*) 原理
一 . count(*)的实现方式 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count() 的时候会直接返回这个数,效率很高; 而 InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行…...
时间序列数据预测的类型
本文主要内容是使用LSTM网络进行不同类型的时间序列预测任务,不涉及代码,仅仅就不同类型的预测任务和数据划分进行说明。 参考文章:https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/ 注…...
sk_buff结构体成员变量说明
一. 前言 Socket Buffer的数据包在穿越内核空间的TCP/IP协议栈过程中,数据内容不会被修改,只是数据包缓冲区中的协议头信息发生变化。大量操作都是围绕sk_buff结构体来进行的。 sk_buff结构的成员大致分为3类:结构管理域,常规数据…...
springbatch设置throttle-limit参数不生效
背景描述 当springbatch任务处理缓慢时,就需要使用多线程并行处理任务。 参数throttle-limit用于控制当前任务能够使用的线程数的最大值。 调整throttle-limit为10时,处理线程只有8,再次增大throttle-limit值为20,处理线程依旧为…...
用 tensorflow.js 做了一个动漫分类的功能(一)
前言:浏览某乎网站时发现了一个分享各种图片的博主,于是我顺手就保存了一些。但是一张一张的保存实在太麻烦了,于是我就想要某虫的手段来处理。这样保存的确是很快,但是他不识图片内容,最近又看了 mobileNet 的预训练模…...
看完这篇Vue-element-admin,跟面试官聊骚没问题
Vue-element-admin vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富…...
2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(5)
目录 模块A 基础设施设置与安全加固 一、项目和任务描述: 二、服务器环境说明 三、具体任务(每个任务得分以电子答题卡为准) A-1任务一 登录安全加固(Windows) 1.密码策略 a.密码策略必须同时满足大小写字母、数…...
基于Java+SpringBoot+Vue+Uniapp前后端分离商城系统设计与实现
博主介绍:✌全网粉丝3W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战✌ 博主作品:《微服务实战》专栏是本人的实战经验总结,《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子句对两种表形成的笛卡儿积进行筛选,我们前面博客中的查询都是内连接,也是在开发过程中使用的最多…...
EXCEL中文本和数字的相互转换方法
将EXCEL中存为文本的数字转换成数字 如果在 Excel 中,将数字存储为文本格式,可以通过以下步骤将其转换为数字: 选中需要转换格式的单元格或者整列;右键单击,选择“格式单元格”;在弹出的对话框中选择“常…...
React源码分析6-hooks源码
本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。 hooks 相关数据结构 要理解 hooks 的执行过程,首先想要大家对 hooks 相关的数据结构有所了解,便于后面大家顺畅地阅读代码。 Hook 每一个 hooks 方法都会生成一个类型为 Hook 的对象ÿ…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...
