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

v-model进阶+ref+nextTick

一、v-model进阶

复习 v-model

v-model: 双向数据绑定指令

数据 <-> 视图: 数据和视图相互影响, 因此被称为双向数据绑定指令

1> 数据变了, 视图也会跟着变 (数据驱动视图)

2> 视图变了, 数据也会跟着变

1. v-model 原理

v-model只是一个语法糖,  比较好用, 可以减少代码量, v-model 作用再原生的 input 上本质就是给input传了value属性(v-bind绑定value属性,从而数据可以影响视图),并且监听了input事件,通过input事件拿到输入框的值(实现视图影响数据)

本质:  :value = "数据" + @input="数据 = 输入框的值" (v-bind,v-on)

我们先使用v-bind/: 实现数据影响视图

注意: input 里面的value值是输入框里面的默认值

现在我们实现视图影响数据, 把输入框里面输入值, 然后影响数据(msg里面会变),此时我们需要监听输入框, 给它加一个监听事件(监听视图的变化, 然后数据也跟着变)

而这个输入框的值,需要这么拿: input是一个原生事件, 原生事件在触发的是有一个事件对象的,此时需要通过$event来获取这个事件对象,$event.target拿到的就是这个input标签本身,$event.target.value拿到的就是原生input的值

<script setup>
import { ref } from 'vue';
const msg = ref('')
</script><template><!-- v-model 实现双向数据绑定 --><p>{{ msg }}</p><!-- <input type="text" v-model="msg" /> --><!-- 自己实现双向数据绑定 --><!--v-bind + @input (v-on)  --><br><!-- 此时v-bind只能够数据影响视图 --><!-- 使用原生事件, 获取到input里面的值然后通过赋值操作影响数据 --><input :value="msg"@input="msg=$event.target.value"></template><style scoped></style>

2. v-model用在组件上

v-model作用在组件标签上:

<Xxx v-model="数据"/>,Xxx是一个组件/自定义标签

上述代码完全等同于

<Xxx :modelValue = "数据" @update:modelValue = "数据 = 新值"/>

注意: 在组件上使用v-model,其实就是要实现处理 modelValue属性 和 update:modelValue 事件 

关于为什么在子组件不能使用v-model, v-bind是单向的,因此不影响

我们此处需要,每次选择哪个城市, 就把它的value值传给父组件里面的activeId

其中父组件的$event是emit传过来的参数, 子组件的$event是事件对象,$event.target 是原生DOM标签, $event.target.value 是标签的值

App.vue

<script setup>
//导入组件
import MySelect from './component/MySelect.vue';
import { ref } from 'vue'
//收集当前选中的城市 id
const activeId = ref('333')
</script>
<template><!-- 使用组件 --><!-- <MySelect v-model="activeId" /> --><!-- 原理 --><!-- 父传子接 --><!-- 组件标签上的 $event 指的是 emit 传递来的参数 --><MySelect :modelValue="activeId" @update:modelValue="activeId=$event"/>
</template><style scoped></style>

MySelect.vue

<script setup>
const props = defineProps({//接收父传子的 modelValue属性modelValue: String
})
const emit = defineEmits()
</script>
<template><!-- 原生标签上的 $event 就是事件对象 --><!-- $event.target: select 原生DOM --><!-- $event.target.value: 选中的 option 的 value--><select :value="props.modelValue" @change="emit('update:modelValue', $event.target.value)"><option value="111">长沙</option><option value="222">上海</option><option value="333">广州</option><option value="444">苏州</option></select>
</template><style scoped></style>

3. 使用 defineModel() 简化上述代码

v-model用在组件上, 子组件代码可以简化:

组件用 defineModel() 接收父传子的 v-model 数据, defineModel() 返回一个 ref 响应式数据, 这个响应式数据的初始值就是 父传递给子的 v-model 数据的值, 并且该数据可读可写, 子组件可以直接修改这个响应式数据, 会同步到父组件的数据当中.

今后组件上用v-model指令的格式如下:

父: <Xxx v-model = "父的响应式数据"/>

子: const model = defineModel()  子可以对model 做读写操作

注意: defineModel() 只是一个语法糖(比较好用), 本质还是一下俩部分: 

1> const props = defineProps({modelValue:String})

2> const emit defineEmits()  emit('update:modelValue'.新值)

具体代码


二、ref

ref 属性: 和之前学习的 ref 函数不一样

1. ref 属性是什么: 是作用在标签上的属性, 是vue新增的, 原生不具备的这个属性

2. ref 属性的作用: 用来获取原生 DOM 或 组件实例(进而调用组件提供的方法)

3. 使用步骤

1> 准备一个 ref 数据, 并绑定在想获取的标签上, <Xxx ref = "ref 响应式数据"/>

2> 恰当时机,通过 ref.value 来获取原生DOM 或组件实例

4. 以获取原生DOM为例

具体代码

<script setup>
import { onMounted, ref } from 'vue';
//准备 ref 响应式数据
const divRef = ref(null)
//组件挂载后
onMounted(() => {// ref 拿到原生 DOM div// console.log(divRef.value)// 设置字体颜色(DOM操作)divRef.value.style.color = 'blue'
})
</script>
<template><!-- 给目标元素添加 ref 属性并绑定数据 --><div ref="divRef">xiaohei</div>
</template><style scoped></style>

5. 小案例: 绘制一个简单的图表

1> 准备MyChart组件, 在这个组件总来绘制图表, 使用在App中

2> 在组件中, 准备一个盒子, 给盒子设置宽高

3> 在组件挂载后, 获取这个div, 绘制图表

4>绘制图表

1. 首先我们要用到一个第三方库: ECharts 

获取 ECharts - 入门篇 - 使用手册 - Apache ECharts

npm install echarts

2. 在MyChart组件中, 组件挂载后获取盒子, 其他的代码抄官方的即可

具体代码

App.vue

<script setup>
import MyChart from './component/MyChart.vue';        
</script><template><MyChart />
</template><style scoped></style>

MyChart.vue

<script setup>
import * as echarts from 'echarts'
import { onMounted, ref } from 'vue';
const divRef = ref(null)
onMounted(() => {//基于准备好的dom, 初始化echars实例const myChart = echarts.init(divRef.value)//绘制图表myChart.setOption({title: {text: 'ECharts 入门示例'},tooltip: {},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]})
})
</script><template><div class="chart-box" ref="divRef"></div>
</template><style scoped>
.chart-box {width: 400px;height: 300px;margin: 100px auto;border: 3px solid #000;
}
</style>

6. 调用组件的方法

ref属性: 获取组件实例, 进而是为了调用组件给我们提供的方法

1> 准备MyForm表单组件, 主要需要提供一个检验的方法

2> 在App中使用MyForm组件, 添加登录按钮, 今后想知道点击了登录按钮之后, 只校验成功了还是失败了, 进而可以做后续的工作

我们子组件可以使用 defineExpose 来把属性和方法进行导出, 然后父组件就可以导入子组件然后进行使用

整体流程

相当于 ref属性值链接的就是一个子组件的组件实例, 子组件的组件实例里面, 使用defineExpose方法新增了组件的属性和方法, 我们就可以在父组件里面来进行使用了

具体代码

MyForm.vue

<script setup>
//表单组件提供的校验方法
const validate = () => {return Math.random() > 0.5 ? true : false
}
//需要对外暴露.类似于导出
defineExpose({ccc: 100,validate
})
</script><template><div class="form-box">账号: <input type="text"><br /><br />密码: <input type="password"><br /><br /></div>
</template><style scoped></style>

App.vue

<script setup>
import MyForm from './component/MyForm.vue';
import { onMounted, ref } from 'vue';
const formRef = ref(null)
onMounted(() => {console.log(formRef.value)//获取 MyForm 组件实例//调用默认导出的方法console.log(formRef.value.validate())console.log(formRef.value.ccc)
})
//登录
const onLogin = () => {//做表单校验if (formRef.value.validate()) {console.log('ok')} else {console.log('不 ok')}
}
</script>
<template><div class="login-box"><!-- 组件上使用 ref,通过子组件使用defineExpose暴露属性/方法从而进行使用 --><MyForm ref="formRef" /><button @click="onLogin">登录</button></div>
</template><style scoped></style>

三、nextTick()

1. 什么是 nextTick(): 是 vue3 给我们提供的一个方法

2. nextTick()的作用: 当数据变了, 想获取更新后的 DOM, 需要把代码写在这个方法的回调中

需求:

编辑标题, 编辑框自动聚焦

1> 点击编辑, 显示编辑框

2> 让编辑框, 立刻获取焦点

点击编辑显示编辑框和确认框

让编辑框, 立刻获取焦点, 此时出现一个问题

    问题: 当数据变了, 发现获取 DOM 拿不到

    原因: vue3中, 当数据变了, DOM 的更新是异步的;

    也就是数据变了, 想立即获取最新的 DOM 是拿不到的, 此时DOM并没有更新

解决方案: 利用 nextTick()这个方法,因为在nextTick()函数的回调中DOM会进行更新

3. 什么时候用这个方法(用的很少)

当数据变了, 想DOM操作, 如果直接拿不到, 就可以在nextTick回调中获取.

具体代码:
App.vue

<script setup>
import { ref, nextTick } from 'vue';
const inputRef = ref(null)
//控制是否显示输入框
const isShowEdit = ref(false)
//点击编辑按钮
const onEdit = () => {isShowEdit.value = true;// 问题: 当数据变了, 发现获取 DOM 拿不到// 原因: vue3中, 当数据变了, DOM 的更新是异步的; // 数据变了, 想立即获取最新的 DOM 是拿不到的, 此时DOM并没有更新console.log(inputRef.value)//null//解决: 利用 nextTick()这个方法,因为在nextTick()函数的回调中DOM会进行更新nextTick(() => {console.log(inputRef.value)inputRef.value.focus()})
}
</script>
<template><div class="box"><h3>大标题</h3><button @click="onEdit">编辑</button></div><!-- 使用v-if,默认是不显示 --><div v-if="isShowEdit"><input type="text" ref="inputRef"><button>确认</button></div>
</template>
<style scoped>
.box {display: flex;align-items: center;width: 200px;height: 40px;justify-content: space-between;
}
</style>

相关文章:

v-model进阶+ref+nextTick

一、v-model进阶 复习 v-model v-model: 双向数据绑定指令 数据 <-> 视图: 数据和视图相互影响, 因此被称为双向数据绑定指令 1> 数据变了, 视图也会跟着变 (数据驱动视图) 2> 视图变了, 数据也会跟着变 1. v-model 原理 v-model只是一个语法糖, 比较好用, …...

vscode+keil嵌入式软件开发全流程

vscodekeil嵌入式软件开发全流程 1 安装MinGW-w64 &#xff08;1&#xff09; MinGW-w64 是一个用于Windows操作系统的开发工具集&#xff0c;其包含了C语言编译器 GCC&#xff08;GNU Compiler Collection&#xff09;&#xff0c;官网地址&#xff1a;https://www.mingw-w6…...

GitHub 从入门到精通完全指南(2025版)

以下是GitHub 从入门到精通完全指南,整合优质教程及官方文档,涵盖基础操作、协作开发、高级功能及实战技巧,助你快速掌握 GitHub 全流程。 一、GitHub 入门篇 1. 注册与配置 注册 GitHub 账号 访问 GitHub 官网,点击“Sign Up”填写邮箱、用户名、密码完成注册。建议绑定双…...

总结【过往部分项目经历一(计算机图形学方向)】

总结【过往部分项目经历】 1.蜂窝填充算法2.孔洞识别算法3.扫掠轮廓计算4.二维排料算法5.最大内接圆算法 1.蜂窝填充算法 介绍: 主要从二维六角网格基本算法出发&#xff0c;基于自定义数据结构和拓扑关系&#xff0c;从二维到三维进行拓展&#xff0c;六角网格->六棱柱-&g…...

Flask(补充内容)配置SSL 证书 实现 HTTPS 服务

没有加密的http服务&#xff0c;就像在裸泳&#xff0c;钻到水里便将你看个精光。数据在互联网上传输时&#xff0c;如果未经加密&#xff0c;随时可能被抓包软件抓住&#xff0c;里面的cookie、用户名、密码什么的&#xff0c;它会看得一清二楚&#xff0c;所以&#xff0c;只…...

js逆向分享

某验三代 这玩意大家应该都人手一份了&#xff0c;也没啥好分享的了&#xff0c;需要注意的是&#xff0c;一共五个请求&#xff0c;分别是&#xff1a; "https://apiv6.geetest.com/gettype.php “https://apiv6.geetest.com/get.php” “https://api.geevisit.com/a…...

【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定

1、右键创建平面&#xff0c;立方体 2、点击场景根节点&#xff0c;shadows勾选enabled3、点击灯光&#xff0c;shadow enabled勾选 4、点击模型&#xff0c;勾选接收阴影&#xff0c;投射阴影&#xff08;按照需要勾选&#xff09; 5、材质创建 6、选中节点&#xff0c;找…...

CentOS 中安装 vim

1. 使用 Yum 安装 Vim 如果您的系统可以正常访问互联网&#xff0c;并且已经配置好了正确的 Yum 源&#xff0c;可以直接运行以下命令安装 vim&#xff1a; sudo yum install vim -y 如果默认的 vim 包不可用&#xff0c;可以尝试安装增强版 vim-enhanced&#xff1a; sudo yu…...

安全可靠+操作简捷——安科瑞预付费电表的用户体验升级

安科瑞顾强 在现代化用电场景中&#xff0c;预付费模式凭借其高效性与便捷性&#xff0c;已成为商业、工业及住宅用电管理的优选方案。安科瑞电气推出的DDSY1352/DTSY1352系列预付费电能表&#xff0c;搭配智能管理平台&#xff0c;为用户提供从精准计量、智能控制到数据分析的…...

AI与物联网的深度融合:开启智能生活新时代

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和物联网&#xff08;IoT&#xff09;作为两大前沿技术&#xff0c;正在加速融合&#xff0c;为我们的生活和工作带来前所未有的变革。这种融合不仅提升了设备的智能化水平&#xff0c;还为各行各业带来了新的机…...

赛灵思 XCVU095-2FFVB2104E XilinxFPGA Virtex UltraScale

XCVU095-2FFVB2104I 是 Xilinx&#xff08;现 AMD&#xff09;Virtex UltraScale 系列中的高端 FPGA 器件&#xff0c;基于 20nm 工艺&#xff0c;提供卓越的逻辑密度和高速串行 I/O 能力&#xff0c;广泛应用于 400G 网络、ASIC 原型验证及大型数据中心互联 该器件集成 1 176…...

leetcode0212. 单词搜索 II - hard

1 题目&#xff1a;单词搜索 II 官方标定难度&#xff1a;难 给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff…...

解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题

在开发中&#xff0c;我们经常需要使用 Node.js 和 NPM 来管理 JavaScript 项目依赖&#xff0c;而 NVM&#xff08;Node Version Manager&#xff09;是开发者在本地环境中管理多个 Node.js 版本的得力工具。不过&#xff0c;有时候在 VSCode 中配置完 NVM 后&#xff0c;可能…...

67.评论日记

我的评论本身也就是一种回答 沈阳车展帖子灵异失踪&#xff0c;究竟是谁干的&#xff1f;_哔哩哔哩_bilibili 2025年4月17日17:32:10...

Vscode 插件开发

文章目录 1、使用vscode官方插件生成框架&#xff0c;下载脚手架2、使用脚手架初始化项目&#xff0c;这里我选择的是js3、生成的文件结构如下&#xff0c;重要的就是以下两个文件4、代码5、打包使用6、发布官网地址7、publisher ID undefined provided in the extension manif…...

数据结构(6)

实验步骤&#xff1a; 任务一&#xff1a; 编写算法实现带头结点单链表的就地逆置,即利用原带头结点单链表的结点空间把元素序列 a0,al,……,an-i 逆置为 an-1,……,al, a0 [程序参数设计] 定义了一个带头结点的单链表结构体&#xff0c;并提供了初始化、尾部插入、打印、就地…...

【ROS】恢复行为

【ROS】恢复行为 前言恢复行为&#xff08;recovery_behavior&#xff09;概述恢复行为的参数示例&#xff1a;recovery_behavior.yaml 配置文件参数说明与配置原则恢复行为模块的参数设置reset_recovery&#xff08;重置行为&#xff1a;清除代价地图&#xff09;参数冲突说明…...

HashMap中put方法的执行流程

在 Java 编程中&#xff0c;HashMap 是一种常用的集合类&#xff0c;它以键值对&#xff08;Key-Value&#xff09;的形式存储数据&#xff0c;它具有高效查找、插入和删除的优势。 一.HashMap底层数据结构 JDK 1.7&#xff1a;采用 数组 链表 的结构。JDK 1.8&#xff1a;优…...

基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割|文献速递-深度学习医疗AI最新文献

Title 题目 Deep learning based coronary vessels segmentation in X-ray angiographyusing temporal information 基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割 01 文献速递介绍 有创冠状动脉造影&#xff08;ICA&#xff09;在冠状动脉疾病&#…...

JVM详解(曼波脑图版)

(✪ω✪)&#xff89; 好哒&#xff01;曼波会用最可爱的比喻给小白同学讲解JVM&#xff0c;准备好开启奇妙旅程了吗&#xff1f;(๑˃̵ᴗ˂̵)و &#x1f4cc; 思维导图 ━━━━━━━━━━━━━━━━━━━ &#x1f34e; JVM是什么&#xff1f;&#xff08;苹果式比…...

深度理解指针之例题

文章目录 前言题目分析与讲解涉及知识点 前言 对指针有一定了解后&#xff0c;讲一下一道初学者的易错题 题目分析与讲解 先定义一个数组跟一个指针变量 然后把数组名赋值给指针变量————也就是把首地址传到pulPtr中 重点是分析这一句&#xff1a; *&#xff08;pulPtr…...

Electricity Market Optimization(VI) - 机组组合问题的 GAMS 求解

根据之前的博客&#xff0c;我们考虑机组的启动成本只讨论考虑以下几种约束的机组组合问题&#xff1a; 功率平衡约束火电机组启停约束和爬坡约束备用容量约束 min ⁡ ∑ t 1 T ( C t g e n C t u c C t curt ) s.t. C t g e n ∑ i ∈ [ G ] c i ( p i , t c ) C t u c …...

【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对

问题背景 给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k&#xff0c;请你返回满足 0 ≤ i < j < n 0 \le i < j < n 0≤i<j<n&#xff0c; n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且…...

赛灵思 XCVU3P‑2FFVC1517I XilinxFPGA Virtex UltraScale+

XCVU3P‑2FFVC1517I AMD Xilinx Virtex UltraScale 系列中的高端 FPGA&#xff0c;基于 TSMC 16 nm FinFET 工艺及第三代 3D IC 堆栈互连技术&#xff08;SSI&#xff09;&#xff0c;旨在为数据中心互连、高性能计算、网络加速和信号处理等苛刻应用提供领先的性能‑功耗比。…...

Rust 与 JavaScript 的 WebAssembly 互操作指南

1. Rust 中导入和导出 JS 函数 导入 JS 函数 Rust 代码中可以通过 extern 块导入 JavaScript 函数&#xff1a; #[link(wasm_import_module "mod")] // 指定 JS 模块名 extern { fn foo(); // 声明导入的 JS 函数 }如果没有指定 wasm_import_module&#xff0c;默…...

2025年特种设备安全管理 A 证考试全解析

对于想要获取特种设备安全管理 A 证的人员来说&#xff0c;了解考试的具体内容与形式是备考的关键。下面将为大家全面解析特种设备安全管理 A 证考试&#xff0c;助力大家顺利备考&#xff0c;成功取证。 特种设备安全管理 A 证考试内容丰富&#xff0c;涵盖多个重要领域。特种…...

TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码

本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...

java 设计模式之策略模式

简介 策略模式&#xff1a;策略模式可以定制目标对象的行为&#xff0c;它尅通过传入不同的策略实现&#xff0c;来配置目标对象的行为。使用策略模式&#xff0c;就是为了定制目标对象在某个关键点的行为。 策略模式中的角色&#xff1a; 上下文类&#xff1a;持有一个策略…...

BH1750光照传感器---附代码

目录 BH1750简介BH1750指令集BH1750工作流程 BH1750简介 VCC-->电源正&#xff1b; ADDR-->地址端口&#xff1b; GND-->电源负&#xff1b; PA5-->SDA-->I2C数据线&#xff1b; PA3-->SCL-->I2C时钟线&#xff1b; DVI-->I2C端口参考电压&#xff1b…...

docker harbor私有仓库登录报错

docker harbor私有仓库登录报错如下&#xff1a; [rootsrv-1 ~]# docker login -u user1 -p pwd1 harbor.chinacloudapi.cn WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://harbor.chinacloudapi.…...

浔川AI翻译v7.0更新预告

亲爱的浔川AI翻译用户&#xff1a; 感谢您一直以来的支持&#xff01;浔川AI翻译自推出以来&#xff0c;已迭代6个版本&#xff0c;其中**v2.0和v4.0因技术问题&#xff08;翻译结果显示异常、注册失败、密码找回功能失效等&#xff09;**被迫下架。我们深知这些问题影响了您…...

Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南

网路通信的三大要素&#xff1a;协议&#xff0c;端口和IP 知识点1【字节序】 多字节在主机中的存放数据 把多字节看成一个整体存储的顺序。 为什么我们在文件中没有这个概念呢&#xff1f; 因为文件是字节流&#xff08;流指针&#xff09;&#xff0c;流是以一个字节为操…...

Java基础知识面试题(已整理Java面试宝典pdf版)

什么是Java Java是一门面向对象编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表&#xff0c;极好地实现了面向对象理论…...

速盾:高防CDN访问多了会影响源站吗?

在当今数字化时代&#xff0c;内容分发网络&#xff08;CDN&#xff09;已经成为保障网站性能和用户体验的重要工具。特别是高防CDN&#xff0c;它不仅能够加速内容传输&#xff0c;还能有效抵御各种类型的网络攻击&#xff0c;确保业务的连续性和稳定性。然而&#xff0c;一些…...

Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战

目录 一、背景&#xff1a;Python并发编程的必要性二、核心概念对比2.1 技术特性对比表2.2 性能测试对比&#xff08;4核CPU&#xff09; 三、线程与进程的创建实战3.1 多线程基础模板3.2 多进程进阶模板 四、锁机制深度解析4.1 资源竞争问题重现4.2 线程锁解决方案4.3 进程锁的…...

赛灵思 XCVU440-2FLGA2892E XilinxFPGA Virtex UltraScale

XCVU440-2FLGA2892E 属于 Xilinx Virtex UltraScale 系列&#xff0c;是面向高端应用的旗舰 FPGA 器件。该系列产品以出色的高并行处理能力、丰富的逻辑资源和高速互联能力闻名&#xff0c;广泛用于 高性能计算、数字信号处理等对计算能力和带宽要求极高的场景。采用先进的 20n…...

UE5 相机裁剪面

UE5无法单独修改相机的裁剪面&#xff0c;不论是场景相机还是游戏相机都不可以 只能在配置里统一修改 项目设置里直接搜clip...

uniapp自定义底部导航栏,解决下拉时候顶部空白的问题

一、背景 最近使用uniapp开发微信小程序&#xff0c;因为使用了自定义的顶部导航栏&#xff0c;所以在ios平台上&#xff08;Android未测试&#xff09;测试的时候&#xff0c;下拉的时候会出现整个页面下拉并且顶部留下大片空白的问题 二、任务&#xff1a;解决这个问题 经…...

vue2 element-ui 中 el-radio 单选框点击事件失效问题

前情提要 点进这篇文章的小伙伴&#xff0c;应该和博主一样&#xff0c;都是遇到了这种单选框可点击取消的需求。也就只有这种不同寻常的需求&#xff0c;才能让我们发现element框架的缺陷点&#xff0c;话不多说&#xff0c;下面博主来提供一个解决思路。 click为什么无法触发…...

yolov8复现

Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤&#xff1a; 环境配置 查看电脑状况&#xff1a;通过任务管理器查看电脑是否有独立显卡&#xff08;NVIDIA卡&#xff09;。若有&#xff0c;后续可安装GPU版本的pytorch以加速训练&#xff1b;若没有&#xff0…...

提高Qt工作线程的运行速度

1. 使用线程池&#xff08;QThreadPool&#xff09;替代单一线程 做过&#xff0c;但是当时没想到。。。 目的&#xff1a;减少线程创建和销毁的开销&#xff0c;复用线程资源。 实现步骤&#xff1a; 创建自定义任务类&#xff1a;继承QRunnable&#xff0c;实现run()方法。…...

ZStack文档DevOps平台建设实践

&#xff08;一&#xff09;前言 对于软件产品而言&#xff0c;文档是不可或缺的一环。文档能帮助用户快速了解并使用软件&#xff0c;包括不限于特性概览、用户手册、API手册、安装部署以及场景实践教程等。由于软件与文档紧密耦合&#xff0c;面对业务的瞬息万变以及软件的飞…...

网络规划设计之广域网结构设计,6种架构模式对比

在数字化转型的浪潮中&#xff0c;网络基础设施的设计理念正在发生深刻变革。传统的基于点线拓扑的研究方法已无法满足现代复杂网络的需求&#xff0c;取而代之的是更具系统性的网络结构设计理念。本文将深入解析网络结构的定义特征&#xff0c;并重点剖析六种主流广域网架构的…...

FortiAI 重塑Fortinet Security Fabric全面智能化进阶

专注推动网络与安全融合的全球性综合网络安全解决方案供应商 Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;近日宣布&#xff0c;旗下 Fortinet Security Fabric 安全平台成功嵌入了 FortiAI 关键创新功能。这一举措将有效增强用户对各类新兴威胁的防护…...

uniapp h5接入地图选点组件

uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 &#xff08;pages/map/map&#xff09;templatescript 2.2选点页面&#xff08;pages/map/mapselect/mapselect&#xff09;templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...

Openfein实现远程调用的方法(实操)

文章目录 环境准备一、URL中接收参数二、接收一个参数三、接收多个参数四、传递对象五、传递JSON格式数据 环境准备 下面的配置&#xff0c;服务调用方加入即可。 依赖导入&#xff1a; <!-- openfeign依赖--><dependency><groupId>org.springframe…...

Matter如何终结智能家居生态割据,重构你的居住体验?

现阶段&#xff0c;Zigbee、Z-Wave、Thread、Wi-Fi与蓝牙等多种通信协议在智能家居行业中已得到广泛应用&#xff0c;但协议间互不兼容的通信问题仍在凸显。由于各协议自成体系、彼此割据&#xff0c;智能家居市场被迫催生出大量桥接器、集线器及兼容性软件以在不同生态的设备间…...

Thin-Agent服务(TAS)概述

### **Thin-Agent服务&#xff08;TAS&#xff09;概述** **Thin-Agent服务&#xff08;TAS&#xff09;** 是一种轻量级监控服务&#xff0c;通过 **BMC/IPMI**&#xff08;基板管理控制器/智能平台管理接口&#xff09;收集**硬件和操作系统特定数据**&#xff0c;为系统管…...

2025.4.17学习日记 初识JavaScript 以及Java和JavaScript有什么区别

Java 和 JavaScript 虽然名字相似&#xff0c;但实际上是两种不同的编程语言。 1. 语言背景和设计目的 Java&#xff1a;由 Sun Microsystems&#xff08;现被 Oracle 收购&#xff09;在 1995 年推出。设计初衷是为了实现 “一次编写&#xff0c;到处运行&#xff08;Write O…...

python学习—合并多个word文档

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 pytho…...