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

Vue2+Vue3 130~180集学习笔记

Vue2+Vue3 130~180集(Vue3)学习笔记

一、create-vue搭建vue3项目

create-vue是vue官方新的脚手架工具,底层切换到了vite
步骤:

  1. 查看环境条件
    node -v版本需要在16.0及以上
  2. 创建一个vue应用

npm init vue@latest

这一指令会安装并执行create-vue
在这里插入图片描述

二、项目目录和关键文件

  • index.html提供挂载点
  • src/assets图片、样式文件的目录
  • components封装的小组件
  • App.vue中
    template和script位置调换
    template中允许有多个根元素
    使用组件时不需要注册了,引入后直接就可以使用
  • main.js
    基于crate-vue创建实例
    通过mount设置挂载点

三、组合式API

1、setup选项

  1. 执行时机早于beforecreate
  2. setup函数中获取不到this(this是undefined的)
  3. 特点:可以提供数据也可以提供函数,但是都要return才能在模板中应用
    如何化简?<script setup>语法糖简化代码 只需定义不需要reture(语法糖自动帮我们reture)

2、reactive和ref函数

(1)reactive

作用:接收对象类型数据的参数传入并返回一个响应式的对象
核心步骤:

  1. 从vue包中导入reactive函数
  2. <script setup>中执行reactive函数并传入类型为对象的初始值,并使用变量接收返回值
<script setup>import {reactive} from 'vue'const state = reactive({count:100})
</script>
(2)ref

作用:接收简单类型或者对象类型的数据传入并返回一个响应式的对象
核心步骤:

  1. 从vue包中导入ref函数
  2. <script setup>中执行ref函数并传入初始值,使用变量接收ref函数的返回值
    本质:是在原有传入数据的基础上,外层包了一层对象,包成了复杂数据类型,包成复杂类型之后再借助reactive实现的响应式,注意:脚本中访问简单的数值数据,需要通过.value,在template模板中,不需要加.value
    推荐以后声明数据统一使用ref

3、computed(计算属性)

核心步骤:

  1. 导入computed函数
  2. 执行函数在回调参数中
<script setup>import {computed} from 'vue'const computedState = computed(()=>{return 基于响应式数据做计算之后的值})
</script>

4、watch函数

作用:侦听一个或多个数据的变化,数据变化时执行回调函数

(1)侦听单个数据
  1. 导入watch函数
  2. 执行watch函数传入要侦听的响应式数据(ref对象)和回调函数
<script setup>import {watch} from 'vue'const count = ref(0)watch(count,(newValue,oldValue)=>{console.log('count发生了变化')})
</script>
(2)侦听多个数据
<script setup>import {watch} from 'vue'const count = ref(0)watch([count,name],([newCount,newName],[oldCount,oldName])=>{console.log('count发生了变化')})
</script>
(3)immediate立刻执行

一进页面立刻执行一次

<script setup>import {watch} from 'vue'const count = ref(0)watch(count,(newValue,oldValue)=>{console.log('count发生了变化')},{immediate: true})
</script>
(4)deep深度监视

一进页面立刻执行一次

<script setup>import {watch} from 'vue'const count = ref(0)watch(count,(newValue,oldValue)=>{console.log('count发生了变化')},{deep: true})
</script>

默认watch是浅层监视,即
ref(简单类型)可以直接监视,ref(复杂类型)监视不到复杂类型内部数据的变化 除非复杂类型的地址被修改

(5)精确侦听对象的某个属性

精确监听age属性

watch(()=>userInfo.value.age,(newValue,oldValue)=>{console.log(newValue,oldValue)
})

三、生命周期函数

请添加图片描述

四、父子通信

(1)父传子

步骤:1.在父组件中,以给子组件添加属性的方式传值 2.在子组件中,通过props接收(借助编译器宏)
注意:子组件中script由于写了setup。所以无法直接配置props,需要通过编译器宏

const props = defineProps({car:String,money:Number
})
(2)子传父

步骤:1.父组件中给子组件标签通过@绑定事件 2.子组件内部通过emit方法触发事件(借助编译宏)

//App.vue
<script setup>
import SonCom from '@/components/son-com.vue'
import {ref} from 'vue'
const money = ref(100)
const getMoney=()=>{money.value+=10
}
const changeFn=(newMoney)=>{money.value=newMoney
}
</script><template><div><h3>父组件 - {{ money }}<button @click="getMoney">挣钱</button>        子传父1.绑定自定义事件</h3><SonCom car="宝马车" :money="money"        父传子1.给子组件添加属性@changeMoney="changeFn"></SonCom>     子传父4.在父组件中通过@事件名监听</div>
</template>
<style scoped>
</style>//son-com.vue
<script setup>
//由于写了setup,所以无法直接配置props选项
//需要借助编译器宏,接收子组件传递的数据
const props = defineProps({        父传子2.通过编译器宏生成props方法car:String,money:Number
})
const emit = defineEmits(['changeMoney'])        子传父2.通过编译器宏生成emit方法
console.log(props);
const buy=()=>{        子传父3.触发自定义事件,传递参数emit('changeMoney',5)
}
</script><template><!-- 对于props传递过来的数据,模板中可以直接使用 --><div class="son">我是子组件 - {{ car }} - {{ money }}        父传子3.模板中可以直接使用通过props传递过来的数据/props.xxx使用<button @click="buy">花钱</button></div>
</template><style scoped>
.son {border:1px solide black;padding:30px;
}
</style>

五、模版引用

通过ref标识获取真实的dom对象或者组件实例对象
步骤:

  1. 调用ref函数生成一个ref对象
  2. 通过ref标识绑定ref对象到标签
  3. 通过ref对象.value即可访问到绑定的元素(dom必须渲染完)

默认情况下<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的,可以通过defineExpose编译宏指定哪些属性和方法允许访问

//App.vue
<script setup>
import TestCom from '@/components/test-com.vue'
import {onMounted,ref} from 'vue'
// 模版引用(可以获取dom也可以获取组件)
// 1.调用ref函数,生成一个ref对象
// 2.通过ref标识,进行绑定
// 3.通过ref对象.value即可访问到绑定的元素(必须渲染)
const inp = ref(null)//生命周期钩子,作用是确保dom渲染完
onMounted(()=>{// console.log(inp.value)// inp.value.focus()
})const clickFn = () => {inp.value.focus()
}const testRef = ref(null)//调用ref函数生成一个ref对象
const getCom = () => {console.log(testRef.value.count)testRef.value.sayHi()
}
</script><template><div><input ref='inp' type="text"><button @click="clickFn">点击让输入框聚焦</button></div><!-- 绑定ref对象到标签 --><TestCom ref="testRef"></TestCom><button @click='getCom'>获取组件</button>
</template><style scoped></style>//test-com.vue
<script setup>
const count = 999
const sayHi = () => {console.log('打招呼')
}defineExpose({count,sayHi
})
</script><template><div>我是用于测试的组件-{{ count }}</div>
</template><style scoped></style>

六、provide和inject

作用:顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信
顶层组件通过provide提供数据,底层组件通过inject获取数据

传普通数据步骤:

  1. 通过provide函数提供数据
provide('key',顶层组件中的函数)
  1. inject函数获取数据
const message = inject('key')

传响应式数据步骤:

  1. 通过provide函数提供数据
const count = ref(1000)
provide('count',count)
  1. inject函数获取数据
const count = inject('count')

跨层传递方法
顶层组件可以向底层组件传递方法,底层组件调用方法可向顶层组件传参或修改顶层组件中的数据

//App.vue
const setCount=()=>{count.value++
}
provide('setCount-key',setCount)//bottom-com.vue
const setCount=inject('setCount-key')
//App.vue
<script setup>
import CenterCom from '@/components/center-com.vue'
import { provide,ref } from 'vue'
//1.跨层传递普通数据
provide('theme-color','pink')
//2.跨层传递响应式数据
const count = ref(100)
provide('count',count)setTimeout(() => {count.value=500
}, 2000)//3.跨层级传递函数=>给子孙后代传递可以修改数据的方法
provide('changeCount' , (newCount) => {count.value = newCount
})
</script><template><div><h1>我是顶层组件</h1><CenterCom></CenterCom></div>
</template><style scoped></style>//center-com.vue
<script setup>
import BottomCom from './bottom-com.vue'
</script><template><div><h2>我是中间层组件</h2><BottomCom></BottomCom></div>
</template><style scoped></style>//bottom-com.vue
<script setup>
import {inject} from 'vue'
const themeColor=inject('theme-color')
const count=inject('count')
const changeCount=inject('changeCount')
const clickFn=()=>{changeCount(10000)
}
</script><template><div><h3>我是底层组件-{{ themeColor }}-{{ count }}</h3><button @click="clickFn">更新count</button></div>
</template><style scoped></style>

七、新特性defineOptions宏

可以定义除props、emits、expose、slots之外的任意选项

<script setup>defineOptions({name:'xxx',inheritAttrs:false,...其他更多自定义属性})
</script>

八、新特性defineModel

<Child v-model=''>
等于
<Child :modelValue='' @update:modelValue=''>
//父
const txt = ref('12345')
<MyInput v-model='txt'></MyInput>
//子
const modelValue=defineModel()
<inputtype='text':value="modelValue"@input="e=>modelValue=e.target.value"

九、Pinia

1、介绍

Pinia是Vue的最新的状态管理工具,是Vuex的替代品

  1. 去掉了mutations(有state、actions(既支持同步也支持异步)、getters)
  2. 提供了符合组合式风格的API(和Vue3新语法统一)
  3. 去掉了moduls概念,每一个store都是一个独立的模块
  4. 配合TypeScript更友好

2、添加Pinia到Vue项目

  1. 使用vite创建一个空的vue3项目

npm create vue@latest

  1. 按照官方文档安装pinia到项目中
    • 安装 npm install pinia
    • 导入
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'const pinia = createPinia()
const app = createApp(App)app.use(pinia)
app.mount('#app')

3、Pinia基本语法

//counter.js
import {defineStore} from 'pinia'
//定义store
//defineStore(仓库的唯一标识,()=>{})
export const useCounterStore = defineStore('counter',()=>{    基于useCounterStore函数就可以使用defineStore仓库//声明数据 state-countconst count = ref(0)//声明操作数据的方法action(普通函数)const addCount = () => count.value++//声明基于数据派生的计算属性getters(computed)const double = computed(()=>count.value*2)//声明数据 state-msgconst msg = ref('hello pinia')return {count,addCount,double...msg,}
})
//App.vue
import {useCounterStore} from ''
const counterStore = useCounterStore() //返回一个对象
{{counterStore.count}}-{{counterStore.double}}
<button @click="counterStore.addCount">+</button>

4、action异步实现

//channels.js
import {defineStore} from 'pinia'
export const useChannelStore = defineStore('channel',()=>{//声明数据const channelList = ref([])//声明操作数据的方法const getList = async=>{//支持异步(直接写异步请求)const {data:{data}}=await axios.get('')channelList.value = data.channelsconsole.log(data.channels)}//声明getters相关return{channelList,getList}
})//App.vue
import {useChannelStore} from ''
const channelStore = useChannelStore()
<button @click='channelStore.getList'>获取频道数据</button>
<ul><li v-for='item in channelStore.channelList' :key='item.id'>{{item.name}}</li>
</ul>

5、Pinia-storeToRefs方法

不能直接对store进行解构,会丢失响应式,需要使用storeToRefs方法

import {storeToRefs} from 'Pinia'
const {count,msg}=storeToRefs(counterStore)
action可以直接解构

6、Pinia持久化

https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/config.html
作用:操作后会将配置了持久化的数据存入本地,即刷新页面后数据也不会重置

  1. 安装

npm i pinia-plugin-persistedstate

  1. 将插件添加到pinia实例中
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)
  1. 在需要配置pinia持久化的组件中配置
import { defineStore } from 'pinia'
import { ref } from 'vue'export const useStore = defineStore('main',() => {const someState = ref('hello pinia')return { someState }},//在声明并return完后进行配置{persist: true,},
)

指定state中哪些数据需要持久化

import { defineStore } from 'pinia'export const useStore = defineStore('store', {state: () => ({save: {me: 'saved',notMe: 'not-saved',},saveMeToo: 'saved',}),persist: {pick: ['save.me', 'saveMeToo'],},
})

相关文章:

Vue2+Vue3 130~180集学习笔记

Vue2Vue3 130~180集&#xff08;Vue3&#xff09;学习笔记 一、create-vue搭建vue3项目 create-vue是vue官方新的脚手架工具&#xff0c;底层切换到了vite 步骤&#xff1a; 查看环境条件 node -v版本需要在16.0及以上创建一个vue应用 npm init vuelatest 这一指令会安装并执…...

前端融合图片mask

之前实现了tif文件的融合&#xff0c;现在实现图片的融合&#xff0c;效果如下 第一张是融合右边两张图的结果 我的思路是&#xff1a; 初始使用canvas加载原图&#xff0c;此时未显示标注点击显示标注后&#xff0c;将原图和mask图传给workerworker接受数据后&#xff0c;转…...

什么是单元测试的“覆盖率”

1. 先搞清楚“覆盖率”是啥&#xff1f;​​ 打个比方&#xff0c;你写完作业&#xff08;代码&#xff09;&#xff0c;老师&#xff08;测试&#xff09;要检查是不是每道题都做对了。覆盖率就是说老师检查了多少题。比如&#xff1a; ​行覆盖率​&#xff1a;老师看了你作…...

SpringAI入门:对话机器人

SpringAI入门&#xff1a;对话机器人 1.引入依赖 创建一个新的SpringBoot工程&#xff0c;勾选Web、MySQL驱动、Ollama&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xm…...

[Java · 初窥门径] Java 语言初识

&#x1f31f; 想系统化学习 Java 编程&#xff1f;看看这个&#xff1a;[编程基础] Java 学习手册 0x01&#xff1a;Java 编程语言简介 Java 是一种高级计算机编程语言&#xff0c;它是由 Sun Microsystems 公司&#xff08;已被 Oracle 公司收购&#xff09;于 1995 年 5 …...

大语言模型智能体:安全挑战与应对之道

在当今科技飞速发展的时代&#xff0c;大语言模型驱动的智能体正逐渐融入我们生活和工作的方方面面&#xff0c;给我们带来了诸多便利。但与此同时&#xff0c;它们的安全问题也引起了广泛的关注。今天&#xff0c;咱们就一起来深入了解一下可信大语言模型智能体所面临的安全挑…...

IHC肿瘤标志物 | 常见乳腺癌诊断——助力守护生命之花

乳腺癌作为一种常见的恶性肿瘤&#xff0c;严重威胁着女性健康。然而&#xff0c;随着医学技术的不断发展&#xff0c;我们有了更为精准和有效的检测方法&#xff0c;为及早发现和治疗乳腺癌提供了强有力的支持。 在这篇文章中&#xff0c;我们将深入了解乳腺癌的IHC检测技术&a…...

利用deepseek+Mermaid画流程图

你是一个产品经理&#xff0c;请绘制一个流程图&#xff0c;要求生成符合Mermaid语法的代码&#xff0c;要求如下&#xff1a; 用户下载文件、上传文件、删除文件的流程过程符合安全规范细节具体到每一步要做什么 graph LRclassDef startend fill:#F5EBFF,stroke:#BE8FED,str…...

Vue3 实战:打造多功能旅游攻略选项卡页面

在旅游类应用开发中&#xff0c;为用户提供全面、直观的信息展示界面至关重要。本文将分享如何基于 Vue3 Axios 技术栈&#xff0c;实现一个包含攻略、游记、问答三大板块的旅游攻略选项卡页面&#xff0c;从样式设计到交互逻辑&#xff0c;带你深入了解整个开发过程。 项目背…...

如何提高单元测试的覆盖率

一、定位未覆盖的代码 ​利用 IDEA 的覆盖率工具​&#xff1a; 右键测试类 → ​Run with Coverage&#xff0c;或使用 AltShiftF10&#xff08;Windows&#xff09;打开运行菜单选择覆盖率。​查看高亮标记​&#xff1a; ​绿色​&#xff1a;已覆盖代码行。​红色​&#x…...

水位传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 water.h文件 water.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 Water Sensor水位传感器是一款简单易用、性价比较高的水位/水滴识别检测传感器&#xff0c;其是通过具有一系列…...

linux服务器命令行获取nvidia显卡SN的方法

机房需要变更机器的GPU显卡配置&#xff0c;入库、出库几块显卡&#xff0c;库管让我去获取显卡序列号。 去现场拆机器的事情毕竟很麻烦&#xff0c;而且也没干过拆装服务器&#xff0c;即使拆下来显卡也不一定找到SN。 于是乎搜索&#xff1a;命令行怎么获取linux服务器上的…...

大模型微服务架构模块实现方案,基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码

以下是基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码示例&#xff0c;结合最新技术动态和行业实践整理&#xff1a; 一、LLaMA Factory本地部署方案 1. 环境配置 # 创建Python环境并安装依赖 conda create -n llama_factory python3.10 conda activate llam…...

每天学一个 Linux 命令(20):find

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/20/index.html find 是 Linux 系统中最强大的文件搜索工具之一,支持按名称、类型、时间、大小、权限等多种条件查找文件,并支持对搜索结果执行操作(如删除、复制、执行命令等)。掌握 find 可大幅提升文件管理效率…...

Kubernetes Pod 调度策略:从基础到进阶

文章目录 环境Kubernetes 部署Kubernetes Pod 调度策略Kubernetes Pod 调度策略对照表调度流程经历阶段案例展示生成yaml文件默认调度节点选择器为节点添加标签编写 Deployment 配置文件应用资源并查看调度结果 Node Affinity&#xff08;节点亲和性&#xff09;为节点添加标签…...

4.18学习总结

完成一道算法题 学习了序列化 敲代码卡bug了...

用于数学定理和逻辑推理的符号系统

当前用于数学定理和逻辑推理的前沿符号系统主要基于依赖类型论&#xff08;Dependent Type Theory&#xff09;&#xff0c;其中Lean 4和**Metamath Zero (MM0)**是最具代表性的新兴系统。以下从技术特性、使用方法和应用实例三个维度展开说明&#xff1a; 一、前沿符号系统解…...

HTTP:九.WEB机器人

概念 Web机器人是能够在无需人类干预的情况下自动进行一系列Web事务处理的软件程序。人们根据这些机器人探查web站点的方式,形象的给它们取了一个饱含特色的名字,比如“爬虫”、“蜘蛛”、“蠕虫”以及“机器人”等!爬虫概述 网络爬虫(英语:web crawler),也叫网络蜘蛛(…...

代码学习总结(五)

代码学习总结(五) 这个系列的博客是记录下自己学习代码的历程,有来自平台上的,有来自笔试题回忆的,主要基于 C++ 语言,包括题目内容,代码实现,思路,并会注明题目难度,保证代码运行结果 1 小红的好数 简单 非退化三角形 快速匹配 小红定义一个数对 { x , y } \{x…...

在 Vue 3 项目中引入 js-cookie 库

1. 安装 js-cookie 你可以通过 npm 或者 yarn 来安装 js-cookie&#xff1a; npm install js-cookie # 或者 yarn add js-cookie2. 在组件里引入并使用 js-cookie 以下给出两种使用方式&#xff1a; 全局引入 在 main.js 中全局引入 js-cookie&#xff0c;这样在所有组件里…...

HarmonyOs学习 环境配置后 实验1:创建项目Hello World

HarmonyOS开发入门&#xff1a;环境配置与Hello World实验 实验目标 掌握HarmonyOS开发环境配置&#xff0c;创建首个HarmonyOS应用并实现"Hello World"界面展示 实验准备 已安装DevEco Studio开发环境已配置HarmonyOS开发依赖项熟悉基本TypeScript/ArkTS语法&am…...

Spark on K8s 在 vivo 大数据平台的混部实战与优化

一、Spark on K8s 简介 (一)定义与架构 Spark on K8s 是一种将 Spark 运行在 Kubernetes(K8s)集群上的架构,由 K8s 直接创建 Driver 和 Executor 的 Pod 来运行 Spark 作业。其架构如下。 Driver Pod:相当于 Spark 集群中的 Driver,负责作业的调度和管理,它会根据作业…...

《软件设计师》复习笔记(13)——结构化开发方法

目录 1. 结构化开发方法 1.1 系统分析过程 1.2 系统设计基本原理 &#xff08;1&#xff09;内聚性&#xff08;模块内部关联程度&#xff09; &#xff08;2&#xff09;耦合性&#xff08;模块间依赖程度&#xff09; 真题示例&#xff1a; 1.3 系统总体结构设计&…...

Android创建测试配置和生产配置

Android测试与生产环境配置指南 在Android开发中&#xff0c;创建不同的构建配置来适应测试和生产环境是至关重要的。这样的配置能让我们在不同的开发阶段有效管理代码、资源和环境变量。本文将详细介绍如何在Android中创建和管理测试配置以及生产配置的整个过程。 环境准备 …...

DBeaver连接hive

DBeaver是一个非常好用的数据库管理工具&#xff0c;支持多种不同的数据库类型。 dbeaver 要连接hive时&#xff0c;数据库驱动是无法下载&#xff0c;但在hive 的安装配置包中&#xff0c;有一个目录&#xff1a;jdbc里面有一个专门提供外部程序连接hive的jar。将这个jar下载…...

数据结构初阶:二叉树(二)

本篇博客主要讲解二叉树---堆的相关知识。 1.实现顺序结构二叉树 一般堆使用顺序结构的数组来存储数据&#xff0c;堆是一种特殊的二叉树&#xff0c;具有二叉树的特性的同时&#xff0c;还具备其他的特性。 1.1 堆的概念和结构 堆具有以下性质&#xff1a; 堆中某个结点的值…...

React 列表渲染基础示例

React 中最常见的一个需求就是「把一组数据渲染成一组 DOM 元素」&#xff0c;比如一个列表。下面是我写的一个最小示例&#xff0c;目的是搞清楚它到底是怎么工作的。 示例代码 // 定义一个静态数组&#xff0c;模拟后续要渲染的数据源 // 每个对象代表一个前端框架&#xf…...

android PackageName ClassName

目录 系统应用: 设置 蓝牙 时钟 计算机 录音机 图库 视频 文件管理 FM 日历 谷歌浏览器 谷歌商店 热门商店 国外应用: amazon spotify deezer pandora audible applemusic omnia mxtech youtubemusic facebook familylink tidal tiktok kindle 系统应用: 设置 …...

万物对接大模型:【爆火】MCP原理与使用指南

###原文链接 OpenAI、谷歌、微软、阿里云、腾讯云、百度等国内外各大厂商都陆续宣布支持MCP服务。MCP是什么&#xff0c;为什么能获得高度的关注&#xff1f; MCP(Model Context Protocol,模型上下文协议)是由Anthropic公司(核心产品是Claude大模型)推出的一种开源协议&#xf…...

SAP系统中MD01与MD02区别

知识点普及&#xff0d;MD01与MD02区别 1、从日常业务中&#xff0c;我们都容易知道MD01是运行全部物料&#xff0c;MD02是运行单个物料 2、在做配置测试中&#xff0c;也出现过MD02可以跑出物料&#xff0c;但是MD01跑不出的情况。 3、MD01与MD02的差异: 3.1、只要在物料主数…...

python——字符串使用

目录 1、字符串表示 2、转义字符 &#xff08;1&#xff09;将一些具有特殊含义的字符&#xff0c;标识成普通的字符&#xff08;\&#xff09; &#xff08;2&#xff09;特殊的控制符 &#xff08;3&#xff09;&#xff08;\&#xff09;还可以表示python中续行符 3、…...

嵌入式ARM RISCV toolchain工具 梳理arm-none-eabi-gcc

嵌入式TOOLchain工具 梳理 简介 本文总结和梳理一下一些toolchain的规则和原理&#xff0c;方便后续跨平台的时候&#xff0c;给大家使用toolchain做一个参考。 解释如何理解arm-none-eabi-gcc等含义&#xff0c;以及如何一看就知道该用什么编译器。 当然如果有哪里写的不是…...

团体程序设计天梯赛PTA-SHU冲刺赛4. L22-L32

这是4.18 SHU备赛天梯赛的最后一场冲刺赛 10.病毒溯源 1.本题PTA中拓栈后会MTL&#xff0c;不拓栈会报非零返回 所以本题最好用栈模拟递归过程 2.源头得是入度为0的&#xff0c;也就是没有节点指向它 所以得设置inn是否有指向该节点 3.这题用dfs&#xff08;用bfs的话不同…...

【数据结构与算法】——插入排序

概要 本文将介绍插入排序方法——直接插入、希尔排序 想了解数据结构其他内容&#xff0c;本人主页 恋风诗 获取源码&#xff0c;gitte仓库&#xff1a;mozhengy 正文 1.排序的分类 目前将主要介绍下面几种排序&#xff1a; 后续学习更多内容后会及时更新 2、插入排序 2…...

手撕STL——vector

目录 引言 1&#xff0c;了解 STL 中的 vector 2&#xff0c;先来一个简易版跑起来 2_1&#xff0c;构造函数 2_2&#xff0c;扩容reserve&#xff08;&#xff09; 2_3&#xff0c;push_back&#xff08;&#xff09; 2_4&#xff0c;pop_back&#xff08;&#xff09; …...

新书速览|DeepSeek移动端AI应用开发:基于Android与iOS

《DeepSeek移动端AI应用开发&#xff1a;基于Android与iOS》 1 本书内容 《DeepSeek移动端AI应用开发:基于Android与iOS》深入剖析了DeepSeek平台的架构原理、API调用及开发实践等核心内容&#xff0c;助力读者在Android与iOS移动端高效集成DeepSeek API&#xff0c;打造出契…...

详解STM32时基单元中参数 TIM_ClockDivision 的含义

在 STM32 定时器时基单元配置中&#xff0c;TIM_TimeBaseInitStruct->TIM_ClockDivision 用于设置 定时器时钟的分频系数&#xff0c;主要影响 输入捕获滤波器 和 输出比较同步信号 的时钟分割。以下是其核心作用、参数含义及应用场景的详细解析&#xff1a; 一、核心作用&…...

黑马V11版 最新Java高级软件工程师课程-JavaEE精英进阶课

课程大小&#xff1a;60.2G 课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/90615581 更多资源下载&#xff1a;关注我 阶段一 中台战略与组件化开发专题课程 阶段二 【物流行业】品达物流TMS 阶段三 智牛股 阶段四 千亿级电商秒杀解决方案专题 …...

【Win】 cmd 执行curl命令时,输出 ‘命令管道位置 1 的 cmdlet Invoke-WebRequest 请为以下参数提供值: Uri: ’ ?

1.原因&#xff1a; 有一个名为 Invoke-WebRequest 的 CmdLet&#xff0c;其别名为 curl。因此&#xff0c;当您执行此命令时&#xff0c;它会尝试使用 Invoke-WebRequest&#xff0c;而不是使用 curl。 2.解决办法 在cmd中输入如下命令删除这个curl别名&#xff1a; Remov…...

【k8s系列4】工具介绍

1、虚拟机软件 vmware workstation 2、shell 软件 MobaXterm 3、centos7.9 下载地址 &#xff08;https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.374bf5adOaiFPW&#xff09; 4、上网软件...

设计模式 --- 装饰器模式

装饰模式是一种结构型设计模式&#xff0c;它允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种模式创建了一个装饰类&#xff0c;用来包装原有的类&#xff0c;并在保持类方法签名完整性的前提下&#xff0c;提供了额外的功能。 优点&#xff1a; 1.灵…...

docker.desktop下安装普罗米修斯prometheus、grafana并看服务器信息

目标 在docker.desktop下先安装这三种组件,然后显示当前服务的CPU等指标。各种坑已踩,用的是当前时间最新的镜像 核心关系概述 组件角色依赖关系Prometheus开源监控系统,负责 数据采集、存储、查询及告警。依赖 Node-Exporter 提供的指标数据。Node-Exporter专用的 数据采集…...

学习设计模式《二》——外观模式

一、基础概念 1.1、外观模式的简介 外观模式的本质是【封装交互、简化调用】&#xff1b; 外观模式的说明&#xff1a;就是通过引入一个外观类&#xff0c;在这个类里面定义客户端想要的简单方法&#xff0c;然后在这些方法里面实现&#xff1b;由外观类再去分别调用内部的多个…...

python中,处理多分类时,模型之间的参数设置

在Python的机器学习库中&#xff0c;处理多分类问题时&#xff0c;不同的模型可能会有不同的参数设置来适应多分类场景。这里列举几个常见模型及相关的多分类参数&#xff1a; 1. Logistic Regression (逻辑回归) 在Scikit-Learn库中&#xff0c;逻辑回归模型可以通过设置mul…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(四级)真题

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;四级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 答案解析&#xff1a;https://blog.csdn.net/qq_33897084/article/details/147341407 一、单选题(共25题&#xff0c;共50分) 1. 下列程序段…...

蓝桥杯12. 日期问题

日期问题 原题目链接 题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。 小明知道这些日期都在 1960 年 1 月 1 日 至 2059 年 12 月 31 日 之间。 令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff1a; 有的采用 年/月/日有的采用 月…...

【MATLAB代码例程】AOA与TOA结合的高精度平面地位,适用于四个基站的情况,附完整的代码

本代码实现了一种基于到达角(AOA) 和到达时间(TOA) 的混合定位算法,适用于二维平面内移动或静止目标的定位。通过4个基站的协同测量,结合最小二乘法和几何解算,能够有效估计目标位置,并支持噪声模拟、误差分析和可视化输出。适用于室内定位、无人机导航、工业监测等场景…...

ARINC818协议(五)

1.R_CTL,设置固定的0x44即可 2.Dest_ID:目的地D_ID,如果不需要目的地址&#xff0c;就设置为0&#xff1b;ADVB协议支持 多个视频目的地址&#xff0c;广播通信; 3.cs_ctl在FC-AV上不用 4.source_ID:S_ID [23:0]包含源实体的端口的地址标识&#xff1b;不用就设置为0. ADVB允许…...

国产品牌芯洲科技100V降压芯片系列

SCT2A25采用带集成环路补偿的恒导通时间(COT)模式控制&#xff0c;大大简化了转换器的片外配置。SCT2A25具有典型的140uA低静态电流&#xff0c;采用脉冲频率调制(PFM)模式&#xff0c;它使转换器在轻载或空载条件下实现高转换效率。 芯洲科技100V降压芯片系列提供丰富的48V系…...

遨游科普:三防平板除了三防特性?还能实现什么功能?

在工业4.0浪潮席卷全球的今天&#xff0c;电子设备的功能边界正经历着革命性突破。三防平板电脑作为"危、急、特"场景的智能终端代表&#xff0c;其价值早已超越防水、防尘、防摔的基础防护属性。遨游通讯通过系统级技术创新&#xff0c;将三防平板打造为集通信中枢、…...