DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕



目录
- DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
- 📚前言
- 📚进入安装好的DeepSeek
- 📚页面效果
- 📚指令输入
- **1. 属性 (Props)**
- **2. 事件 (Events)**
- **3. 插槽 (Slots)**
- **路由集成**
- **激活项处理**
- **可访问性**
- **样式**
- **响应式设计**
- 📚think
- 📘组件代码
- 📘以下是两个使用示例:
- 📘优化建议:
- 📘组件特点:
- 📘使用时请确保:
- 📚代码测试
- 📚上面是主要代码,为了代码正常跑通,附其他辅助代码。
- 📘编写 src\router\index.js
- 🗂️文件位置
- 📝代码
- 📘编写 src\App.vue
- 🗂️文件位置
- 📝代码
- 📚页面效果
- 📚自己部署 DeepSeek 安装地址
- 📚相关文章
📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣
DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
📚前言
DeepSeek 在中文语境优化方面也做得非常出色。由于其训练语料中中文占比超 40%,因此更符合中文语言习惯和文化背景,在中文语法、成语、网络用语及行业术语方面进行了专项训练,中文语义理解准确率高。而 ChatGPT 的中文语料占比约 10%,在中文处理上相对较弱。
DeepSeek 采用了完全开源策略,将模型权重、训练框架及数据管道全部开源,采用 MIT 许可证,允许用户自由使用、修改和商业化。这一策略对 AI 社区和行业发展产生了深远的影响。
📚进入安装好的DeepSeek
0基础3步部署自己的DeepSeek安装步骤
打开搭建好的DeepSeek应用。

进入应用。

📚页面效果

📚指令输入
已经创建好了一个基于Vue3的组合式API的项目(Composition API),并能正常运行起来,请帮我用 Vue3的组合式API(Composition API) 生成一个 面包屑导航(Breadcrumbs) 的功能组件,所有代码都保存在components/Breadcrumbs 下的文件夹中。功能组件的script标签中只有setup属性,使用普通 JavaScript 实现,不使用TypeScript。
功能要有,如下属性:
为了创建一个灵活且可重用的 Vue3 面包屑导航组件,以下是建议的属性和事件定义,以及其他关键实现要点:
1. 属性 (Props)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
items | BreadcrumbItem[] | 必填 | 面包屑项数组,每个元素包含 text, to, icon 等字段 |
separator | string | Component | '/' | 分隔符(支持文本或图标组件) |
disableRouter | boolean | false | 是否禁用自动路由跳转(触发事件代替) |
activeClass | string | 'active' | 当前激活项的 CSS 类名(通常最后一个项自动激活) |
containerClass | string | '' | 容器元素的自定义类名 |
itemClass | string | '' | 每个面包屑项的自定义类名 |
separatorClass | string | '' | 分隔符的自定义类名 |
2. 事件 (Events)
| 事件名 | 参数 | 说明 |
|---|---|---|
item-click | (item: BreadcrumbItem, event: MouseEvent) | 点击面包屑项时触发(disableRouter 为 true 时需手动处理跳转) |
3. 插槽 (Slots)
| 插槽名 | 作用域参数 | 说明 |
|---|---|---|
item | { item, isActive } | 自定义单个面包屑项的渲染内容 |
separator | - | 自定义分隔符的渲染内容 |
路由集成
- 默认使用
router-link实现导航(需引入 Vue Router)。 - 通过
disableRouter属性切换为普通<a>标签或自定义元素。
激活项处理
- 自动将最后一个
item标记为激活状态(不可点击),通过activeClass应用样式。
可访问性
- 在容器上添加
role="navigation"和aria-label="Breadcrumb"。 - 使用
aria-current="page"标记当前激活项。
样式
- 提供基础 CSS 结构,但允许通过类名完全覆盖样式。
- 使用 CSS 变量增强主题定制能力:
响应式设计
- 考虑移动端折叠场景(如隐藏中间项),可通过 CSS 媒体查询或逻辑处理实现。
通过以上设计,组件将具备高可定制性,同时保持核心功能的简洁性。开发者可通过插槽、属性以及事件灵活扩展功能。
你有更好的建议也可以添加,要注明。组件定义好后给出2个及以上完整的调用示例。
下面是现有目录
vueAndDeepseek/
├── src/ # 源代码目录
│ ├── assets/ # 静态资源
│ │ ├── base.css
│ │ ├── main.css
│ │ └── logo.svg
│ ├── components/ # 组件目录
│ │ ├── HelloWorld.vue
│ │ ├── TheWelcome.vue
│ │ ├── WelcomeItem.vue
│ │ ├── Progress/
│ │ │ └── Progress.vue
│ │ ├── Accordion/
│ │ ├── BackToTop/
│ │ ├── Card/
│ │ ├── InfiniteScroll/
│ │ ├── Notification/
│ │ ├── Timeline/
│ │ ├── Switch/
│ │ ├── Tabs/
│ │ ├── Sidebar/
│ │ ├── Breadcrumbs/
│ │ └── icons/
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── stores/ # Pinia 状态管理
│ │ └── counter.js
│ ├── views/ # 页面组件
│ │ ├── ProgressView.vue
│ │ ├── TabsView.vue
│ │ ├── SwitchView.vue
│ │ ├── TimelineView.vue
│ │ ├── NotificationView.vue
│ │ ├── CardView.vue
│ │ ├── InfiniteScrollView.vue
│ │ ├── BackToTopView.vue
│ │ ├── AccordionView.vue
│ │ ├── SidebarView.vue
│ │ ├── BreadcrumbsView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── public/ # 公共资源目录
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依赖包目录
📚think
嗯,用户已经创建了一个基于Vue3组合式API的项目,并且想生成一个面包屑导航组件。我需要帮他写这个组件,并确保所有代码放在components/Breadcrumbs文件夹下。
首先,分析需求。用户提供了详细的属性、事件和插槽说明,还有路由集成、激活项处理等要点。所以,我得把这些都考虑进去。
先看属性部分。items是必填的,每个item包含text、to、icon。那在组件中,我需要接收这些props,并确保它们正确传递。separator默认是’/',可以是字符串或组件。disableRouter控制是否禁用路由跳转,activeClass用于激活状态的类名。容器和分隔符的类名也需要处理。
接下来是事件。item-click事件在点击时触发,参数包括item和event。当disableRouter为true时,需要手动处理跳转。所以,在setup函数中,我得定义一个emit,并在点击事件里调用它。
插槽方面,有item和separator两个插槽。item插槽传递item和isActive状态,separator插槽没有作用域参数。这意味着在模板中,我需要用slot来渲染这些内容。
路由集成部分,如果disableRouter为false,默认使用router-link,否则用a标签或者自定义元素。所以,在template里,需要根据disableRouter的值来决定使用哪个组件。
激活项处理方面,最后一个item默认是active状态,不能点击。所以,在循环items时,判断是否是最后一个,并设置对应的class和disabled属性。
可访问性也是重点,容器添加role="navigation"和aria-label,当前激活项加aria-current=“page”。
样式部分,用户希望提供基础结构,允许通过类名覆盖。所以,我需要在组件中正确应用containerClass、itemClass和separatorClass,并且可能使用CSS变量来增强主题定制能力。
响应式设计方面,可能需要处理移动端的折叠情况,比如隐藏中间项,这可能需要后续用CSS媒体查询或逻辑处理实现,但目前先不考虑,留到以后扩展。
现在,开始写组件代码。首先,在Breadcrumbs.vue中,使用script标签,setup语法糖,只用普通JavaScript。
在setup函数中,接收props:items、separator、disableRouter、activeClass、containerClass、itemClass、separatorClass。然后,定义emit事件,item-click。
接下来,计算items的长度,最后一个索引是items.length - 1。如果items为空,则抛出警告或处理错误。
渲染部分,使用template,循环每个item,判断是否为最后一个来设置active状态。对于每个item,使用router-link或者a标签,根据disableRouter决定。
分隔符的处理:在每个item后面插入separator,除了最后一个。如果用户提供了separator插槽,就用它;否则,显示props中的separator内容,并应用separatorClass。
插槽方面,item插槽传递item和isActive状态,让开发者自定义渲染内容。separator插槽则没有作用域参数。
测试一下示例是否正确。第一个示例使用默认配置,第二个禁用了路由并添加了点击事件处理,第三个展示了自定义分隔符和样式。这些应该都能正常工作。
最后,确保组件结构清晰,代码规范,并且在main.js中注册了全局组件或在需要的页面引入。
📘组件代码
根据你的需求,我帮你创建了一个灵活的面包屑导航组件。以下是完整实现:
<!-- components/Breadcrumbs/Breadcrumbs.vue -->
<template><navrole="navigation"aria-label="Breadcrumb":class="['breadcrumbs', containerClass]"><ol class="breadcrumbs__list"><liv-for="(item, index) in items":key="index"class="breadcrumbs__item":class="[itemClass,{ [activeClass]: isLast(index) }]"><!-- 项内容 --><slotname="item":item="item":isActive="isLast(index)"><component:is="linkComponent(item)"v-if="!isLast(index)":to="item.to"class="breadcrumbs__link"@click="handleClick(item, $event)"><component:is="item.icon"v-if="item.icon"class="breadcrumbs__icon"/><span class="breadcrumbs__text">{{ item.text }}</span></component><spanv-elseclass="breadcrumbs__current"aria-current="page"><component:is="item.icon"v-if="item.icon"class="breadcrumbs__icon"/>{{ item.text }}</span></slot><!-- 分隔符 --><spanv-if="!isLast(index)"class="breadcrumbs__separator":class="separatorClass"><slot name="separator">{{ separator }}</slot></span></li></ol></nav>
</template><script setup>
import { computed } from 'vue';
import { RouterLink } from 'vue-router';const props = defineProps({items: {type: Array,required: true,validator: (value) => {return value.every(item => 'text' in item);}},separator: {type: [String, Object],default: '/'},disableRouter: {type: Boolean,default: false},activeClass: {type: String,default: 'active'},containerClass: {type: String,default: ''},itemClass: {type: String,default: ''},separatorClass: {type: String,default: ''}
});const emit = defineEmits(['item-click']);const isLast = (index) => index === props.items.length - 1;const linkComponent = (item) => {if (props.disableRouter) {return item.to ? 'a' : 'span';}return item.to ? RouterLink : 'span';
};const handleClick = (item, event) => {emit('item-click', item, event);if (props.disableRouter && item.to) {event.preventDefault();}
};
</script><style>
.breadcrumbs {--text-color: #666;--link-color: #2c3e50;--active-color: #999;--separator-margin: 0 8px;--item-spacing: 0.5rem;
}.breadcrumbs__list {display: flex;list-style: none;padding: 0;margin: 0;
}.breadcrumbs__item {display: inline-flex;align-items: center;color: var(--text-color);
}.breadcrumbs__link {color: var(--link-color);text-decoration: none;transition: color 0.2s;
}.breadcrumbs__link:hover {color: var(--active-color);
}.breadcrumbs__current {color: var(--active-color);
}.breadcrumbs__separator {margin: var(--separator-margin);color: var(--text-color);
}.breadcrumbs__icon {margin-right: 4px;
}
</style>
📘以下是两个使用示例:
<!-- views/BreadcrumbsView.vue -->
<template><div class="breadcrumbs-demo"><h2>基本用法</h2><Breadcrumbs:items="[{ text: '首页', to: '/' },{ text: '用户中心', to: '/user' },{ text: '个人资料' }]"class="my-breadcrumbs"@item-click="handleItemClick"/><h2>自定义样式和插槽</h2><Breadcrumbs:items="[{ text: '首页', to: '/', icon: HomeIcon },{ text: '商品分类', to: '/category' },{ text: '电子产品' }]"separator=">"active-class="custom-active"container-class="custom-container"item-class="custom-item"separator-class="custom-separator"><template #item="{ item, isActive }"><span :class="{ 'custom-link': !isActive }"><component :is="item.icon" v-if="item.icon" />{{ item.text }}</span></template><template #separator><span class="custom-sep">→</span></template></Breadcrumbs></div>
</template><script setup>
import Breadcrumbs from '@/components/Breadcrumbs/Breadcrumbs.vue';
import HomeIcon from '@/components/icons/Home.vue';const handleItemClick = (item, event) => {console.log('Clicked item:', item);// 自定义处理逻辑
};
</script><style>
.my-breadcrumbs {--link-color: #409eff;--active-color: #909399;
}.custom-container {padding: 12px;background: #f5f7fa;
}.custom-item {font-size: 0.9em;
}.custom-separator {color: #c0c4cc;
}.custom-active {font-weight: bold;
}.custom-link {color: #606266;
}.custom-sep {margin: 0 12px;
}
</style>
📘优化建议:
- 响应式折叠:可以添加一个
maxItems属性,当面包屑项超过指定数量时自动折叠中间项 - 过渡动画:为面包屑变化添加淡入淡出过渡效果
- 路由匹配:自动根据当前路由生成面包屑路径(需配合路由配置)
- 主题系统:通过CSS变量提供更多可定制选项(如间距、字体大小等)
- 键盘导航:添加键盘焦点样式和支持键盘操作
📘组件特点:
- 完全支持Vue Router集成
- 完善的ARIA可访问性支持
- 通过CSS变量实现主题定制
- 灵活的内容插槽系统
- 类型验证和防御性编程
- 移动端友好的响应式设计
📘使用时请确保:
- 已安装并配置vue-router
- 图标组件需要提前注册或导入
- 根据实际需求调整CSS变量值
📚代码测试
正常
📚上面是主要代码,为了代码正常跑通,附其他辅助代码。
📘编写 src\router\index.js
🗂️文件位置

📝代码
import { createRouter, createWebHistory } from 'vue-router'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',name: 'progress',component: () => import('../views/ProgressView.vue'),},{path: '/tabs',name: 'tabs',// route level code-splitting// this generates a separate chunk (About.[hash].js) for this route// which is lazy-loaded when the route is visited.// 标签页(Tabs)component: () => import('../views/TabsView.vue'),},{path: '/accordion',name: 'accordion',// 折叠面板(Accordion)component: () => import('../views/AccordionView.vue'),},{path: '/timeline',name: 'timeline',// 时间线(Timeline)component: () => import('../views/TimelineView.vue'),},{path: '/backToTop',name: 'backToTop',component: () => import('../views/BackToTopView.vue')},{path: '/notification',name: 'notification',component: () => import('../views/NotificationView.vue')},{path: '/card',name: 'card',component: () => import('../views/CardView.vue')},{path: '/infiniteScroll',name: 'infiniteScroll',component: () => import('../views/InfiniteScrollView.vue')},{path: '/switch',name: 'switch',component: () => import('../views/SwitchView.vue')},{path: '/sidebar',name: 'sidebar',component: () => import('../views/SidebarView.vue')},{path: '/breadcrumbs',name: 'breadcrumbs',component: () => import('../views/BreadcrumbsView.vue')}],
})export default router
📘编写 src\App.vue
🗂️文件位置

📝代码
<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script><template><header><img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" /><div class="wrapper"><HelloWorld msg="You did it!" /><nav><RouterLink to="/">Progress</RouterLink><RouterLink to="/tabs">Tabs</RouterLink><RouterLink to="/accordion">Accordion</RouterLink><RouterLink to="/timeline">Timeline</RouterLink><RouterLink to="/backToTop">BackToTop</RouterLink><RouterLink to="/notification">Notification</RouterLink><RouterLink to="/card">Card</RouterLink><RouterLink to="/infiniteScroll">InfiniteScroll</RouterLink><RouterLink to="/switch">Switch</RouterLink><RouterLink to="/sidebar">Sidebar</RouterLink><RouterLink to="/breadcrumbs">Breadcrumbs</RouterLink></nav></div></header><RouterView />
</template><style scoped>
header {line-height: 1.5;max-height: 100vh;
}.logo {display: block;margin: 0 auto 2rem;
}nav {width: 100%;font-size: 12px;text-align: center;margin-top: 2rem;
}nav a.router-link-exact-active {color: var(--color-text);
}nav a.router-link-exact-active:hover {background-color: transparent;
}nav a {display: inline-block;padding: 0 1rem;border-left: 1px solid var(--color-border);
}nav a:first-of-type {border: 0;
}@media (min-width: 1024px) {header {display: flex;place-items: center;padding-right: calc(var(--section-gap) / 2);}.logo {margin: 0 2rem 0 0;}header .wrapper {display: flex;place-items: flex-start;flex-wrap: wrap;}nav {text-align: left;margin-left: -1rem;font-size: 1rem;padding: 1rem 0;margin-top: 1rem;}
}
</style>
📚页面效果

📚自己部署 DeepSeek 安装地址
蓝耘元生代智算云平台地址:https://cloud.lanyun.net/#/registerPage?promoterCode=07100c37a0
📚相关文章
-
0基础3步部署自己的DeepSeek安装步骤
-
DeepSeek 助力 Vue 开发:打造丝滑的步骤条(Step bar)
-
DeepSeek 助力 Vue 开发:打造丝滑的进度条(Progress Bar)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )
-
DeepSeek 助力 Vue 开发:打造丝滑的返回顶部按钮(Back to Top)
-
DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)
-
DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)
-
DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)
-
DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)
-
DeepSeek 助力 Vue 开发:打造丝滑的侧边栏(Sidebar)
到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作
相关文章:
DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
Ubuntu 系统 LVM 逻辑卷扩容教程
Ubuntu 系统 LVM 逻辑卷扩容教程 前言 在 Linux 系统中,LVM(Logical Volume Manager)是一种逻辑卷管理工具,允许管理员动态调整磁盘空间,而无需重启系统。 本文将详细介绍如何使用 LVM 扩容逻辑卷,以实现…...
美团一面,有点难度。
一位粉丝朋友分享了最近参与美团民宿旅游业务线的一面的经历,全程约1小时,面试官围绕高并发、分布式事务、性能优化等高频考点展开追问,问题密集且注重落地细节。以下是完整问题整理回答思路扩展解析,助你避坑! 一、项…...
7-Zip Final绿色版:高效压缩解压缩工具
在工作与学习旅程中,我们时常需要与各式各样的文件和文件夹打交道。为了更有效地利用存储空间或促进文件的便捷传输,压缩与解压工具自然而然地成为了我们不可或缺的助手。在众多同类工具中,7-Zip凭借其高效能、免费及开源的特性,深…...
详解如何使用Pytest内置Fixture tmp_path 管理临时文件
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 临时目录在测试中起着至关重要的作用,它为执行和验证代码提供了一个可控…...
QML使用ChartView绘制饼状图
一、工程配置 首先修改CMakeLists.txt,按下图修改: find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Widgets) PRIVATEtarget_link_libraries(appuntitledPRIVATE Qt6::QuickPRIVATE Qt6::Widgets )其次修改main.cpp,按下图修改ÿ…...
用大模型学大模型03-数学基础 概率论 最大似然估计(MLE)最大后验估计(MAP)
https://metaso.cn/s/r4kq4Ni 什么是最大似然估计(MLE)最大后验估计(MAP)?深度学习中如何应用,举例说明。 好的,我现在需要回答关于最大似然估计(MLE)和最大后验估计&…...
Rust学习总结之结构体(一)
一:结构体定义 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为 字段(field…...
【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决
问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…...
Ubuntu添加桌面快捷方式
以idea为例 一. 背景 在ubuntu中,很多时候是自己解压的文件并没有桌面快捷方式,需要自己找到对应的目录的执行文件手动打开,很麻烦 而只需要在 /usr/share/applications 中创建自定义的desktop文件就能自动复制到桌面 二. 添加方法 创建desk…...
day09_实时类标签/指标
文章目录 day09_实时类标签/指标一、日志数据实时采集2、Flume简介2.3 项目日志数据采集Flume配置2.3.1 涉及的Flume组件和参数2.3.2 Nginx日志采集2.3.3 用户行为日志采集 二、Nginx日志数据统计1、日志格式说明2、数据ETL2.1 日志抽取2.1.1 正则表达式2.1.2 基于Spark实现Ngi…...
排序算法的魔法世界:用C语言揭开数据排列的奥秘
当数据开始跳集体舞:排序的意义 想象你面前有一群调皮的数字精灵在开派对,7和3在跳探戈,9和1在玩捉迷藏,5和2在抢蛋糕。这时候就需要排序算法这位神奇的派对管家出场了!它像音乐指挥家一样挥动魔棒,让所有数字精灵乖乖排成整齐的队伍。在计算机的世界里,排序算法就是处…...
网页模板免费HTML源码 HTML网页设计模板
在现代网站开发中,拥有一个美观且功能齐全的网页模板是至关重要的。对于许多开发者和设计师来说,获取高质量的免费HTML源码和网页设计模板可以大大简化开发流程。本文将探讨网页模板免费HTML源码的资源、优势以及如何有效利用这些模板。 什么是网页模板…...
Python实现语音识别详细教程【2025】最新教程
文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python3 使用 pip 安装必要的库 二、使用 SpeechRecognition 库进行语音识别1.识别本地音频文件2.实时语音识别3. 使用其他语音识别引擎 注意事项 前言 以下是一份较为完整的 Python 语音识别教程,涵盖环境搭建、使…...
与传统光伏相比 城电科技的光伏太阳花有什么优势?
相比于传统光伏,城电科技的光伏太阳花有以下优势: 一、发电效率方面 智能追踪技术:光伏太阳花通过内置的智能追踪系统,采用全球定位跟踪算法,能够实时调整花瓣(即光伏板)的角度,确…...
Qt——连接MySQL数据库之ODBC的方法详细总结(各版本大同小异,看这一篇就够了)
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…...
Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究
基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…...
pytest测试专题 - 1.3 测试用例发现规则
<< 返回目录 1 pytest测试专题 - 1.3 测试用例发现规则 执行pytest命令时,可以不输入参数,或者只输入文件名或者目录名,pytest会自己扫描测试用例。那pytest基于什么规则找到用例呢? 文件名:满足文件名称为tes…...
【Bluedroid】 BLE连接源码分析(一)
BLE链接过程分析见【Bluedroid】BLE连接过程详解-CSDN博客,本篇主要围绕HCI_LE_Create_Connection展开。基于Android14源码进行分析。在蓝牙低功耗技术中,设备之间建立连接是进行数据传输等操作的前提。HCI LE Extended Create Connection Command 提供了一种更灵活、功能更丰…...
Unity DeepSeek API 聊天接入教程(0基础教学)
Unity DeepSeek API 聊天接入教程(0基础教学) 1.DeepSeek 介绍 DeepSeek是杭州深度求索人工智能基础技术研究有限公司推出的一款大语言模型。2025年1月20日,DeepSeek-R1正式上线,和当前市面上的主流AI相比,它在仅有极少标注数据的情况下&am…...
【16届蓝桥杯寒假刷题营】第1期DAY4
4.可达岛屿的个数 - 蓝桥云课 题目背景 在一个神奇的魔法世界中,有一座古老的迷幻之城。迷幻之城被分成 n 个鸟屿,编号从 1 到 n,共有 m 座桥。迷幻之城的居民们希望能够建立起紧密的联系,每个岛屿上的居民都想知道自己最多能到…...
Flink提交pyflink任务
1.官方文档: flink1.14:https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/cli/#submitting-pyflink-jobs flink1.18:https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/cli/#submitting-pyflink-jobs 2.提…...
大语言模型中one-hot编码和embedding之间的区别?
1. 维度与稀疏性 One-Hot编码 定义:每个词被表示为一个高维稀疏向量,维度等于词汇表大小。例如,词汇表有10,000个词,每个词对应一个10,000维的向量,其中仅有一个位置为1(表示当前词)࿰…...
CAN学习记录
CAN(Controller Area Network),是ISO国际标准化的串行通信协议,为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求 低速CAN(ISO11519)通信速率10~125kbps,总线长度可达1000米 高速CAN&#…...
滑动窗口算法篇:连续子区间与子串问题
1.滑动窗口原理 那么一谈到子区间的问题,我们可能会想到我们可以用我们的前缀和来应用子区间问题,但是这里对于子区间乃至子串问题,我们也可以尝试往滑动窗口的思路方向去进行一个尝试,那么说那么半天,滑动窗口是什么…...
机器翻译同样的文本,是从英语翻译成日语更准确还是中文翻译成日语更准确
在大多数情况下,从英语翻译成日语会比从中文翻译成日语更准确,原因如下: 1. 语言结构的相似性 英语和日语的句子结构更接近,特别是在语法、从句使用、定语位置等方面。例如,日语和英语都使用 SVO 结构(主…...
MybatisMybatisPllus公共字段填充与配置逻辑删除
Mybatis/MybatisPllus公共字段填充与配置逻辑删除 在开发过程中,很多时候需要处理一些公共字段,例如:创建时间、修改时间、状态字段等。这些字段通常会在插入或更新数据时进行填充,以便记录数据的变化和状态。同时,逻…...
001-监控你的文件-FSWatch-C++开源库108杰
fswatch 原理与应用简介fswatch 安装fswatch 实践应用具体应用场景与细节补充 1. 简介 有些知识,你知道了不算厉害,但你要是不知道,就容易出乱。 很多时候,程序需要及时获取磁盘上某个文件对象(文件夹、文件࿰…...
SpringMVC环境搭建
文章目录 1.模块创建1.创建一个webapp的maven项目2.目录结构 2.代码1.HomeController.java2.home.jsp3.applicationContext.xml Spring配置文件4.spring-mvc.xml SpringMVC配置文件5.web.xml 配置中央控制器以及Spring和SpringMVC配置文件的路径6.index.jsp 3.配置Tomcat1.配置…...
ESXi安装【真机和虚拟机】(超详细)
项目简介: ESXi(Elastic Sky X Integrated)是VMware公司开发的一种裸机虚拟化管理程序,允许用户在单一物理服务器上运行多个虚拟机(VM)。它直接安装在服务器硬件上,而不是操作系统之上ÿ…...
