vue 的面试题
一、Html篇
1、常用的块级元素及行内元素有哪些?
块级元素:div、p、h1~h6、ol、ul、li、table、form
行内标签:a、span、img、input、lable、button
行内块元素:img、input、button
2、行内元素和块级元素的区别?
块级元素:默认换行,独占一行,可设置宽高 (宽度是父容器的100%),块级元素可以嵌套任意元素,块级文字不能放入其他块级元素。
行内元素:默认不换行,设置宽高无效 (默认宽度是本身内容宽度),不能包含块级元素,只能包含文本或者其它行内元素,设置 margin,padding 上下无效。
行内块元素:综合块级元素与行内元素的特性,可设宽高(默认是内容宽高),也可以设置内外边距。
转换:display:block,display:inline,display:inline-block。
3、标签上title与alt属性有什么区别?
alt 是给搜索引擎识别,在图像无法显示时的替代文本。
title 是元素的注释信息,主要是给用户解读。
当鼠标放到文字或是图片上时有 title 文字显示。在 IE 浏览器中 alt 起到了 title 的作用,变成文字提示。
4、H5新特性
语义化标签:
<header> 定义文档的头部区域
<nav> 定义导航链接
<article> 内容标签
<section> 定义文档某个区域
<aside> 侧边栏标签
<footer> 定义了文档的尾部区域
<figure> 规定独立的流内容(图像、图表、照片、代码等)
<figcaption> 定义 <figure> 元素的标题
音频视频:<audio> 、<video>
画布:<canvas>
SVG 绘图
地理位置
WebStorage (本地存储:LocalStorage / SessionStorage )
二、Css篇
1、css3的新特性
选择器:层级选择器,属性选择器,状态伪类选择器,结构伪类选择器,伪元素选择器
文本效果:文本阴影 ,文本自动换行,文本溢出,(单词拆分,文本拆分)
边框:圆角边框 border-radius,边框阴影 box-shadow,边框图片 border-image
背景:渐变背景,多重背景 (设定背景图像的尺寸,指定背景图像的位置区域,背景的绘制)
透明度:opacity ( 取值0-1,通常用于做元素的遮罩效果)
高斯模糊:filter
渐变:background: linear-gradient (线性渐变,径向渐变 ,文字渐变)
过渡:transition
2D转换 / 3D转换: transform
动画:Animation (@keyframes 动画帧)
媒体查询:@media
弹性布局 (flex)
1、如何让css只在当前组件中起作用
在当前组件的<style>修改为<style scoped>
想要改变ui框架原有样式scss可以用/deep/或::v-deep
2、组件样式中的scoped有什么作用
作用:实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块。
三、Vue篇
1、mvvm 框架是什么?
vue是实现了双向数据绑定的mvvm框架,当视图改变更新模型层,当模型层改变更新视图层。在vue中,使用了双向绑定技术,就是View的变化能实时让Model发生变化,而Model的变化也能实时更新到View。
2、vue2与vue3之间的区别
生命周期:Vue2 可直接调用生命周期钩子;Vue3 使用时需先引入
多根节点:Vue2 报错;Vue3 支持
打包优化:Vue3 比 Vue2 轻量化【Vue2 中,全局API暴露在Vue实例上,即使未使用,也无法消除;Vue3 中针对全局和内部的API进行了重构】
响应式原理:Vue2是Object.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的;Vue3是Proxy API对数据代理
API 构成:Vue2 选项API【一个逻辑会散乱在文件不同位置(data、props、computed、watch、生命周期钩子等),导致代码的可读性变差。当需要修改某个逻辑时,需要上下来回跳转文件位置】;Vue3 组合式API【可将同一逻辑的内容写到一起,增强了代码的可读性、内聚性,其还提供了较为完美的逻辑复用性方案】
TypeScript:Vue2 不支持ts,Vue3 支持
3、生命周期
共分为8个阶段 :创建前/后,挂载前/后,更新前/后,销毁前/后
【vue3 中 setup 是围绕 beforeCreate 和 created 生命周期钩子运行的,不需要去定义】
4、第一次页面加载会触发哪几个钩子
beforeCreate,created,beforeMount,mounted
5、vue获取数据在哪个周期函数
一般 created / beforeMount / mounted 皆可
如果你要操作 DOM ,那肯定是 mounted 时候才能操作
6、简述每个周期具体适合哪些场景
beforeCreate:在new一个Vue实例后,只有一些默认的生命周期钩子和默认事件,其他的东西都还没创建。在beforeCreate生命周期执行的时候,data和methods中的数据都还没有初始化。不能在这个阶段使用data中的数据和methods中的方法。
create:data 和 methods 都已经被初始化好了,如果要调用 methods 中的方法,或者操作data中的数据,最早可以在这个阶段中操作。
beforeMount:执行到这个钩子的时候,在内存中已经编译好了模板了,但是还没有挂载到页面中,此时,页面还是旧的。
mounted:执行到这个钩子的时候,就表示Vue实例已经初始化完成了。此时组件脱离了创建阶段,进入到了运行阶段。如果我们想要通过插件操作页面上的DOM节点,最早可以在这个阶段中进行。
beforeUpdate:当执行这个钩子时,页面中的显示的数据还是旧的,data中的数据是更新后的,页面还没有和最新的数据保持同步。
updated:页面显示的数据和data中的数据已经保持同步了,都是最新的。
beforeDestroy:Vue实例从运行阶段进入了销毁阶段,这个时候所有的 data 和 methods,指令,过滤器…都是处于可用状态。还没有真正被销毁。
destroyed:这个时候所有的 data 和 methods,指令,过滤器…都是处于不可用状态。组件已经被销毁了。
7、v-show 和 v-if 指令的共同点和不同点
共同点:都能控制元素的显示和隐藏
不同点:v-show 是通过修改元素的display的CSS属性让其显示或者隐藏; v-if 是直接销毁和重建DOM达到让元素显示和隐藏的效果
(使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理)
8、v-if 与 v-for 的优先级
vue2:v-for 优先级高于 v-if
vue3:v-if 优先级高于 v-for(除此之外v-for和v-if在同一标签中使用也会报错,解决办法可以在外面套一个template标签)
9、$nextTick 是什么?为什么优先解决微任务?
当你修改了data 的值然后马上获取这个 dom 元素的值,是不能获取到更新后的值,你需要使用 $nextTick 这个回调,让修改后的 data 值渲染更新到 dom 元素之后在获取,才能成功。
$nextTick中的回调是在下次 DOM 更新循环结束之后执行的延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
主要思路就是采用微任务优先的方式调用异步方法去行$nextTick包装的方法。
10、vue组件间的参数传递
1)父组件传给子组件:子组件通过props方法接受数据
2)子组件传给父组件:$emit方法传递参数
3)非父子组件间的数据传递,兄弟组件传值借用eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。发送数据使用 $emit方法,使用 $on 接收
4)vuex 通用
11、vuex是什么?怎么使用?哪种功能场景使用它?
1)是什么
vue框架中状态管理。在main.js引入store注入。新建一个目录store 。场景有:单页应用中,组件之间的状态,登录状态、音乐播放、加入购物车等
2)属性:
State、 Getter、Mutation 、Action、 Module
○ State
state是数据源存放地,对应于一般Vue对象里面的data。state里面存放的数据是响应式的,
Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新
需要通过mapState把全局 state 和 getters 映射到当前组件的 computed 计算属性中。
○ Getter
getters 可以对State进行计算操作,在多个组件间复用
○ Mutation 、Action
Action 类似于 mutation,不同在于Action 提交的是 mutation,而不是直接变更状态;Action 可以包含任意异步操作。
○ Module
Vuex允许我们将store分隔成模块(module),每个模块拥有自己的state,mutation,action,getter,甚至是嵌套子模块
3)使用场景
一句话,不要为了使用vuex而去使用vuex,推荐组件间数据复用,记录登录及其它状态值数据,一些需要缓存的数据使用vuex都能达到很好的管理
12、vue常用的修饰符
表单修饰符
1)lazy(当光标离开标签时,才会将值赋值给value)
2)trim(过滤掉两边的空格)
3)number(自动将用户的输入值转为数值类型,但如果这个值无法被parseFloat解析,则会返回原来的值)
事件修饰符
1)stop//stop阻止事件的冒泡,相当于调用了event.preventPropagation方法
2)prevent//preven阻止了事件的默认行为,相当于调用了event.preventDefault方法
3)self//只当在 event.target 是当前元素自身时触发处理函数
4)once//绑定了事件以后只能触发一次,第二次就不会触发
5)capture//capture事件捕获,从顶层往下触发
6)passive//passive用于提升移动端scroll事件的性能。在移动端,当我们在监听元素滚动事件的时候,会一直触发onscroll事件会让我们的网页变卡,因此我们使用这个修饰符的时候,相当于给onscroll事件整了一个.lazy修饰符。
7)native//native如果在自定义组件标签上绑定原生事件,则需要加上.native
13、v-model的使用
v-model 用于表单数据的双向绑定,其实它就是一个语法糖,这个背后就做了两个操作:v-bind 绑定一个 value 属性;v-on 指令给当前元素绑定 input 事件。
14、vue中双向数据绑定是如何实现的
v-model 通过数据劫持和观察者模式实现
15、vue常用的指令
v-once、v-show、v-if、v-else、v-else-if、v-for、v-html、v-text、v-bind、v-on、v-model指令等
16、说出至少4种vue当中的指令和它的用法
v-if、v-show:显示与隐藏;v-for:数据循环;v-bind:class:绑定一个属性;v-model:数据双向绑定
17、vue.js的两个核心是什么
数据驱动、组件系统
18、页面刷新vuex被清空解决办法
localStorage 存储到本地再回去
重新获取接口获取数据
19、vue2的双向数据绑定原理
vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调
20、性能优化有哪些方法
合理使用v-if和v-show:v-if适用于在条件满足时渲染整个元素,而v-show适用于频繁切换元素的显示和隐藏。
避免不必要的重新渲染:使用key属性来唯一标识列表项或组件,避免不必要的重新渲染。
组件懒加载:将页面中不可见或初始不需要的组件进行懒加载,以提高初始加载速度。
合理使用异步更新机制:通过使用Vue.$nextTick()方法,将DOM操作推迟到下一个DOM更新循环中,以避免不必要的重渲染。【eg:当修改了Vue实例中的数据后,Vue会将这些变化缓冲起来,然后异步更新真正的DOM。而Vue.$nextTick()方法就是为了在DOM更新循环结束之后执行某个回调函数】
路由懒加载:将路由的组件进行懒加载,按需加载所需的代码,以提高初始加载速度。
使用事件修饰符:使用Vue提供的事件修饰符(如.stop、.prevent、.capture等)来避免不必要的事件冒泡和默认行为。
避免过多的全局组件和深层嵌套:合理设计组件结构,避免过多的全局组件和过深的组件嵌套,以减少不必要的性能开销。
21、<keep-alive></keep-alive> 的作用是什么?
keep-alive 是 vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。
22、为什么使用key?
使用 key 来给每个节点做一个唯一标识, Diff 算法就可以正确的识别此节点。作用主要是为了高效的更新虚拟 DOM。
23、分别简述computed和watch的使用场景
computed : 当一个属性受多个属性影响的时候就需要用到 computed ,最典型的栗子:购物车商品结算的时候
watch : 当一条数据影响多条数据的时候就需要用 watch ,栗子:搜索数据
24、请说出vue.cli项目中src目录每个文件夹和文件的用法?
assets 文件夹是放静态资源;components 是放组件;router 是定义路由相关的配置; app.vue 是一个应用主组件;main.js 是入口文件。
25、vue组件中data为什么必须是一个函数?
因为 JavaScript 的特性所导致,在 component 中,data 必须以函数的形式存在,不可以是对象。组建中的 data 写成一个函数,数据以函数返回值的形式定义,这样每次复用组件的时候,都会返回一份新的 data ,相当于每个组件实例都有自己私有的数据空间,它们只负责各自维护的数据,不会造成混乱。而单纯的写成对象形式,就是所有的组件实例共用了一个 data ,这样改一个全都改了。
26、如何获取dom?
ref="domName" 用法:this.$refs.domName
27、assets和static的区别
相同点:assets 和 static 两个都是存放静态资源文件。项目中所需要的资源文件图片,字体图标,样式文件等都可以放在这两个文件下。
不相同点:assets 中存放的静态资源文件在项目打包时,也就是运行 npm run build 时会将 assets 中放置的静态资源文件进行打包上传,所谓打包简单点可以理解为压缩体积,代码格式化。而压缩后的静态资源文件最终也都会放置在 static 文件中跟着 index.html 一同上传至服务器。static 中放置的静态资源文件就不会要走打包压缩格式化等流程,而是直接进入打包好的目录,直接上传至服务器。因为避免了压缩直接进行上传,在打包时会提高一定的效率,但是 static 中的资源文件由于没有进行压缩等操作,所以文件的体积也就相对于 assets 中打包后的文件提交较大点。在服务器中就会占据更大的空间。
建议: 将项目中 template需要的样式文件js文件等都可以放置在 assets 中,走打包这一流程。减少体积。而项目中引入的第三方的资源文件如iconfoont.css 等文件可以放置在 static 中,因为这些引入的第三方文件已经经过处理,我们不再需要处理,直接上传。
四、路由篇
1、vue的路由实现:hash模式 和 history模式
hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用window.location.hash读取;特点:hash虽然在URL中,但不被包括在HTTP请求中;用来指导浏览器动作,对服务端安全无用,hash不会重加载页面
history模式:history 模式下,前端的 URL 必须和实际向后端发起请求的 URL 一致,history采用HTML5的新特性;且提供了两个新方法:pushState(),replaceState()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更
2、vue路由传参数
使用query方法传入的参数使用this.$route.query接受
使用params方式传入的参数使用this.$route.params接受
3、$route和$router的区别
$route是“路由信息”对象,包括path,params,hash,query,fullPath,matched,name等路由信息参数
$router是“路由实例”对象,包括路由的跳转方法,钩子函数等(想要导航到不同的url,则使用 $router.push方法)
4、Vue-router跳转和location.href有什么区别
使用 location.href='/url' 来跳转,简单方便,但刷新了页面;使用 history.pushState('/url') ,无刷新页面,静态跳转;引进 router ,然后使用 router.push('/url') 来跳转,使用了 diff 算法,实现了按需加载,减少了 dom 的消耗。其实使用 router 跳转和使用 history.pushState() 没什么差别的,因为vue-router就是用了 history.pushState() ,尤其是在history模式下。
五、javaScript篇
1、ajax、axios、fetch之间的区别
ajax:实现了局部数据刷新,本身是针对MVC的编程,多用于jquery项目,不符合现在前端MVVM的浪潮。
axios:基于ajax封装,为MVVM框架而生 (vue react),支持 Promise API,支持并发请求。
fetch:ajax在es6的替代品,fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象;兼容性差。
2、var,let,const三者的区别
变量提升:var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined;let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错。
块级作用域:var不存在块级作用域;let和const存在块级作用域。
重复声明:var允许重复声明变量;let和const在同一作用域不允许重复声明变量。
修改声明的变量:var和let可以;const声明一个只读的常量。一旦声明,常量的值就不能改变,但对于对象和数据这种引用类型,内存地址不能修改,可以修改里面的值。
3、防抖与节流
防抖:
在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时;典型的案例就是输入搜索:输入结束后n秒才进行搜索请求,n秒内又输入的内容,就重新计时。
通俗理解,就是我们在点击请求或者点击加载等过程中,只需要点击一次,但由于请求慢,点击了好多次,导致多次请求,防抖就是在点击了好多次之后的最后一次才会请求。
在一些搜索框输入内容时,会有好多联想词在下方显示出来,并不是输入框内容一改变就触随即弹出联想词的,是我们结束输入后,经过一段时间,才会触发。
节流:
规定在一个单位时间内,只能触发一次函数,如果这个单位时间内触发多次函数,只有一次生效; 典型的案例就是鼠标不断点击触发,规定在n秒内多次点击只有一次生效。
在某应用购买火车票/飞机票等商品的时候,不断地点击刷新购买,总不能一直点击一直请求吧,系统会崩掉的,所以节流就很有必要了。
区别:
防抖是将多次执行变为最后一次执行;节流是将多次执行变成每隔一段时间执行。
4、单页面应用和多页面应用区别及优缺点
单页面(SPA):通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。
多页面(MPA):就是指一个应用中有多个页面,页面跳转时是整页刷新。
单页面优点:用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小;前后端分离;页面效果会比较炫酷(比如切换页面内容时的专场动画)。单页面缺点:不利于seo;导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管理);初次加载时耗时多;页面复杂度提高很多
原文链接:
vue_面试题(持续更新中)_vue面试题-CSDN博客
相关文章:
vue 的面试题
一、Html篇 1、常用的块级元素及行内元素有哪些? 块级元素:div、p、h1~h6、ol、ul、li、table、form 行内标签:a、span、img、input、lable、button 行内块元素:img、input、button 2、行内元素和块级元素的区别? 块级…...
MongoDB-部署PSA(一主一从一仲裁)架构复制集群
目录 环境信息环境准备mongoDB配置&部署复制集群搭建 环境信息 IP端口节点10.0.0.127017主10.0.0.227017从10.0.0.327017仲裁 环境准备 1.关闭THP Transparent Huge Pages 简称 THP。透明大页面(THP)是一种Linux内存管理系统,通过使用…...

CSS中 特殊类型的选择器 伪元素如何使用
一、什么是伪元素 在 CSS 中,伪元素是一种特殊类型的选择器,它允许你为元素的特定部分添加样式,而这些部分在 HTML 文档中并不实际存在。伪元素通常用于创建装饰性效果,如添加边框、背景、阴影等,而不需要额外的 HTML…...

科技信贷业务怎么寻找客户?
在科技信贷业务领域,寻找客户的痛点主要集中在以下几个方面: 1.风险评估难题:科技型企业尤其是初创企业,往往缺乏足够的历史数据和抵押物,这使得金融机构在评估其信用风险时面临较大挑战。由于科技企业的研发周期长、…...

VM中创建CentOS 7及VM中如何修改DHCP的IP网段
一、创建虚拟机 1新建Centos虚拟机 2类型选择 3版本兼容性选择 4镜像选择 5安装系统选择 6虚拟机的创建路径(选择C盘以外且不包含中文名称的路径) 7硬件配置选择 网络类型的选择(通常情况下选择NAT模式) 8剩下的全部按推荐走&…...

mybatis#{}与${}的区别,mybatis关联查询,mybatis动态sql
1.#{}与${}的区别 #{}是占位符,是采用预编译的方式向sql中传值,可以防止sql注入如果我们往sql中传值,可以使用这个,例如这个delete语句 ${}将内容直接拼接到sql语句中,一般不用于传值,可以当作列名&#x…...
K8S(Kubernates) 知识目录
1. 一文了解K8S(Kubernates) 2. K8S CNI CRI CSI 3. K8S Helm 4. K8S Harbor 5. K8S Operator 6. K8S 服务网格 7. K8S 存储 8. K8S 容器调度 9. K8S 探针 10. K8S Watch 11. K8S 版本发版 12. K8S 资源管理CPU&内存 13. K8S Flannel 1…...

基于Java+SpringBoot+Vue+MySQL的失物招领管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的失物招领管理系统【附源码文档】、前后…...

Mybatis链路分析:JDK动态代理和责任链模式的应用
背景 此前写过关于代理模式的文章,参考:代理模式 动态代理功能:生成一个Proxy代理类,Proxy代理类实现了业务接口,而通过调用Proxy代理类实现的业务接口,实际上会触发代理类的invoke增强处理方法。 责任链功…...
【Spring Boot 3】【Web】解析获取HTTP请求参数
【Spring Boot 3】【Web】解析获取HTTP请求参数 背景介绍开发环境开发步骤及源码工程目录结构背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要…...

conda换源是什么?
换源对于我们在国内的python使用者来说是非常有必要的,之前讲了pip如何换源。 pip更换为国内镜像源的步骤,为什么要更换镜像源 那现在讲一下conda如何换源。 conda换源(清华源) 有时候,conda虽然和pip共用一个本地…...
英文缩写大全(IT 领域和电子行业制造领域)
英文缩写大全(IT 领域和电子行业制造领域) 前言一、计算机通用二、WINDOWS三、LINUX四、编程语言1. 前端 / 设计2. JAVA / Android3. PHP4. Python 四、电子行业制造领域五、常识 前言 本文收集了各类英文缩写大全,方便查阅,主要…...

如何将图片左右翻转?8种方法来将图片进行左右翻转
如何将图片左右翻转?在现代数字化的图像处理过程中,图片的方向调整是常见的操作之一。左右翻转图片不仅可以改变图像的视觉效果,还可以用于修正拍摄时的角度问题,或者满足特定设计和排版需求。比如,当你拍摄的照片由于…...
linux:ln用法详解
文章目录 1. 描述2. 语法2.1 硬链接(Hard Link)2.2. 符号链接(Symbolic Link / Soft Link) 3. ln 命令的常用选项4. 例子 1. 描述 在 Linux 系统中,ln 命令用于创建硬链接(Hard Link)或符号链接…...

0基础跟德姆(dom)一起学AI Python进阶02-Python面向对象高级
1 [重点]定义类的几种语法 方式1:类名 在上一章节的学习过程中,我们都使用了这种定义类的语法: properties class 类名: 代码 ... 例如,使用该方式来定义一个老师类。 python # 1.class 类名: # pass class Te…...

【深度学习】softmax 回归的从零开始实现与简洁实现
前言 小时候听过一个小孩练琴的故事,老师让他先弹最简单的第一小节,小孩练了两天后弹不出。接着,老师让他直接去练更难的第二小节,小孩练习了几天后还是弹不出,开始感觉到挫败和烦躁了。 小孩以为老师之后会让他从简…...

Sollong、IO.NET和 Solana,为何参加 WebX 2024活动?
东京王子花园塔酒店 ChainCatcher_携手 DPCapital_XYZ与WebX_Asia共同打造“世界のStaking最大级集结|Tokyo站”盛会,为全球Staking爱好者与行业精英搭建交流合作桥梁!全球顶尖Staking项目方、知名区块链机构、行业领袖与企业家将齐聚东京,共…...

3个免费好用的网站,可以转换PDF,提取MP3
今天分享的三个网站,分别用于文件转换PDF,QMC转MP3格式和配色网站。 TOPDF 这个网站是一个在线PDF转换工具,可以快速将文本文件、演示文稿、电子表格和图片转换为PDF格式。它支持多种文件格式,如AZW3、BMP、CHM、CSV、DjVu、DOC、…...

PHP智能匹配轻松预订自习室在线订座系统小程序源码
智能匹配,轻松预订——自习室在线订座系统 📚【开篇:告别排队,迎接智能学习新时代】📚 还在为找不到合适的自习室座位而烦恼吗?是不是每次去图书馆或自习室都要提前好久去排队占位?现在&#…...

构建高效医护人员排班系统:Spring Boot框架的优势
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理医护人员排班系统的相关信息成为必然。开发…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...