自己部署DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

共同探索软件研发!敬请关注【宝码香车】
关注描述

csdngif标识

目录

  • 自己部署DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)
    • 📚前言
    • 📚进入安装好的DeepSeek
    • 📚页面效果
    • 📚指令输入
    • 📚think
      • 📘以下是 Tabs.vue 内的完整代码:
      • 📘使用方法:
      • 📘props 属性说明:
      • 📘方法说明:
      • 📘示例使用:
      • 📘CSS 样式:
    • 📚代码测试
    • 📚页面效果
    • 📚自己部署DeepSeek安装地址
    • 📚相关文章


📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣

自己部署DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)

📚前言

随着 AI 技术的不断进步,大语言模型应运而生,成为 AI 领域的重要发展方向。大语言模型基于深度学习架构,通过对海量文本数据的学习,具备了强大的语言理解和生成能力。它们能够回答各种复杂问题、生成高质量的文本内容,甚至可以进行代码编写、创意写作等任务,为众多行业带来了新的机遇和变革。

在众多大语言模型中,DeepSeek 以其独特的优势和卓越的性能脱颖而出,成为 AI 领域的一颗璀璨明星。DeepSeek 是杭州深度求索人工智能基础技术研究有限公司开发的一系列大语言模型,自推出以来,便在全球范围内引起了广泛关注和高度赞誉。

📚进入安装好的DeepSeek

0基础3步部署自己的DeepSeek安装步骤

打开搭建好的DeepSeek应用。

DeepSeek应用

进入应用。

进入DeepSeek应用

📚页面效果

页面效果

📚指令输入

已经创建好了一个基于Vue3的组合式API的项目,并能正常运行起来,请帮我用 Vue3的组合式API 生成一个 标签页(Tabs)的功能组件,所有代码都保存在components/Tabs下的文件夹中。功能要有title(修改选项卡的标题,类型是string,默认值tab+自增数字[数字从1开始])content(自定义选项卡的内容,支持传入 html,类型string,默认值content+自增数字[数字从1开始])id(选项卡标题元素的属性值,类型string,默认数字[数字从1开始]) change(是否添加 tab 完毕后即自动切换,类型boolean,默认true)。
下面是现有目录
vueAndDeepseek/
├── src/ # 源代码目录
│ ├── assets/ # 静态资源
│ │ ├── base.css
│ │ ├── main.css
│ │ └── logo.svg
│ ├── components/ # 组件目录
│ │ ├── HelloWorld.vue
│ │ ├── TheWelcome.vue
│ │ ├── WelcomeItem.vue
│ │ ├── Progress/
│ │ │ └── Progress.vue
│ │ ├── Tabs/
│ │ └── icons/
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── stores/ # Pinia 状态管理
│ │ └── counter.js
│ ├── views/ # 页面组件
│ │ ├── ProgressView.vue
│ │ ├── TabsView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── public/ # 公共资源目录
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依赖包目录

📚think

好,我现在需要为一个基于Vue3的项目创建一个标签页(Tabs)功能组件,保存在components/Tabs下的文件夹中。让我先仔细分析一下问题。

首先,用户已经提供了项目的初始结构,包括src、assets、router等目录,以及App.vue和main.js作为根组件和入口。因此,我需要创建一个新的组件Tabs,并放置在src/components/Tabs/下面。

接下来, Tabs 组件的功能需求包括四个选项卡,每个选项卡有标题、内容、id(用于设置选项卡标题的属性值)以及change属性,决定是否自动切换。当选中的选项卡被切换后,如果change为true,会自动切换到下一个选项卡。

我需要确保这个组件的script标签中使用setup属性,并且不使用TypeScript。这意味着我只能使用普通的JavaScript代码,而没有类型注解。

首先,我应该定义一个接口或对象来描述每个选项卡的配置。由于用户要求默认值为content和自增数字,所以每个选项卡可以有以下属性:

  • id:string,作为标题元素的属性值,按顺序排列,如tab1, tab2等。
  • title: string,显示在选项卡上,默认是id加上数字部分,比如“Tab 1”。
  • content: string,选项卡内的内容,默认为content加上数字,如“content1”。
  • change: boolean,是否自动切换,默认true。

接下来,我需要设计组件的结构。使用Vue3的组合式API,我可以将数据和方法封装到setup函数中,并通过ref来处理状态。

我可能会使用一个state变量来存储当前选项卡的索引,以及selectedItems来记录被切换过的选项卡,以便在自动切换时跳过它们。例如,如果用户手动选择了第2个选项卡,且change属性为true,那么组件应该自动切换到下一个未被选中的选项卡,但不会重复切换已经被选中的。

然后,我需要生成标题和内容。为了让每个选项卡有独特的id和类别,我可以根据数组的索引来构建它们。例如,假设有4个选项卡,那么第i个选项卡的id是tab+i,title是"Tab “+(i+1),content则是"content”+(i+1)。

接下来,考虑如何处理切换事件。当点击某个选项卡时,如果它不是当前选中的,并且change属性允许自动切换,那么组件会切换到下一个未被选中的选项卡。这可能需要跳过已经被切换的选项卡,以避免无限循环。

此外,用户可能希望能够手动控制切换,因此我需要提供一个方法,可以在某个选项卡被点击时触发自动切换。或者,在change属性为true时,组件会自动切换到下一个未被选中的选项卡,但不会重复切换已经被切换过的。

为了实现自动切换,我可以创建一个循环,从0开始遍历所有选项卡的索引。如果某个索引对应的选项卡没有被选中且不是当前的,则切换到它,并停止循环。这样就确保不会重复切换相同的选项卡。

我还需要提供一个方法,允许开发者手动切换到指定的选项卡。这可以通过调用组件实例上的方法来实现,如changeTab(i)。

在组件模板中,我需要生成一系列的a标签作为选项卡,每个a标签包含标题和对应的内容。当点击a标签时,触发切换逻辑。同时,每个选项卡也应该有一个唯一的key,以避免重复。

在代码实现方面,我可能会使用Vue3的ref来处理当前选中的索引,并根据change属性自动切换。例如,当组件初始化时,currentTab初始化为0,如果change属性是true,则立即切换到下一个未被选中的选项卡。

我还需要确保,当用户手动点击某个选项卡时,只有在当前选项卡和目标选项卡不同时才切换。这样可以避免因为change属性导致的无限切换。

最后,我应该提供一些示例使用方式,帮助用户理解如何在视图中使用Tabs组件,比如使用

总结一下,步骤如下:

  1. 创建新的 Tabs 组件文件,放在src/components/Tabs/下。
  2. 在 script 中使用 setup 属性,定义为函数式组件。
  3. 定义选项卡的配置数组 tabsConfig,并根据索引生成id、title和content。
  4. 使用 ref 管理当前选中的选项卡索引 currentTab 和 selectedItems 记录已切换的选项卡。
  5. 根据 change 属性判断是否自动切换到下一个未被选中的选项卡。
  6. 在模板中生成a标签作为选项卡,每个点击触发切换逻辑。
  7. 提供方法来手动切换或控制切换行为。

现在,我可以开始编写具体的代码了,确保所有功能都涵盖,并且符合用户的要求。

好的,我将按照您的要求创建一个基于 Vue 3 的组合式 API 组件 - Tabs。以下是实现步骤和代码:

  1. 首先,在 components 文件夹下新建一个名为 Tabs 的文件夹.
  2. 在 Tabs 文件夹中新建一个名为 Tabs.vue 的文件.

📘以下是 Tabs.vue 内的完整代码:

<script setup>
import { ref } from 'vue'const props = {tabsConfig: {id: {type: String,default: 'tab'},title: {type: String,default: 'content'}},change: {type: Boolean,default: true}
}const [currentTab, setCurrentTab] = ref(0)
const selectedItems = new Set()// 初始化默认选项卡
const defaultTabConfig = Array.from({ length: 4 }, (_, i) => ({id: `tab${i + 1}`,title: `Tab ${i + 1}`,content: `content${i + 1}`
}))// 切换到指定的选项卡
function changeToTab(index) {if (selectedItems.has(index)) returnconst currentIndex = currentTabconst nextIndex = index// 检查是否需要自动切换if (props.change && !selectedItems.has(currentIndex) && currentIndex !== nextIndex) {// 跳过已被切换的选项卡let i = currentIndexwhile (i < defaultTabConfig.length) {if (!selectedItems.has(i)) {setCurrentTab(i)selectedItems.add(i)break}i++}} else {setCurrentTab(nextIndex)selectedItems.add(nextIndex)}
}// 手动切换到指定选项卡
function manualChange(index) {if (!selectedItems.has(index)) {changeToTab(index)}
}
</script><template><div class="tabs-container"><ul class="tab-list" :key="index"><li v-for="(config, index) in defaultTabConfig" :key="index"><ahref="#"@click="manualChange(index)":class="{ 'selected-tab': currentTab === index }">{{ config.title }}</a></li></ul></div>
</template><style lang="less" scoped>
.tabs-container {display: flex;justify-content: center;width: 100%;
}.tab-list {list-style: none;padding: 0;
}.tab-item {display: inline-block;margin: 10px;cursor: pointer;
}.selected-tab {color: #007bff;
}
</style>

📘使用方法:

<!-- 在你的视图中使用 Tabs 组件 -->
<Tabs :tabs-config="tabsConfig" @changeTab="handleChange" />

📘props 属性说明:

  • tabsConfig: 选项卡的配置数组, 可以为每个选项卡设置 idtitle 或者直接通过数组索引生成默认值.
  • change: 是否启用自动切换功能.

📘方法说明:

  • @changeTab(index): 手动触发切换到指定的选项卡.
  • handleChange(index) (事件处理方法): 在你的组件中定义该方法来处理选项卡切换事件.

📘示例使用:

<template><Tabs :tabs-config="['tab1', 'tab2']" @changeTab="handleTabChange"/>
</template><script>
import { ref } from 'vue'export default {data() {return {currentTab: 0,selectedItems: new Set()}},methods: {handleTabChange(index) {// 在这里实现切换逻辑console.log(`切换到选项卡 ${index}`);}}
}
</script>

📘CSS 样式:

您可以根据需要在 <style> 标签中添加自定义样式.

默认样式如下:

.tabs-container {display: flex;justify-content: center;
}.tab-list {list-style: none;padding: 0;
}.tab-item {display: inline-block;margin: 10px;cursor: pointer;
}.selected-tab {color: #007bff;
}

希望这个组件能满足您的需求!如果需要更多功能或修改,请告诉我.

📚代码测试

正常

📚页面效果

页面效果

📚自己部署DeepSeek安装地址

蓝耘元生代智算云平台地址:https://cloud.lanyun.net/#/registerPage?promoterCode=07100c37a0

📚相关文章

  1. 0基础3步部署自己的DeepSeek安装步骤

  2. DeepSeek 助力 Vue 开发:打造丝滑的步骤条

  3. DeepSeek 助力 Vue 开发:打造丝滑的进度条

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。


整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek渣机部署编程用的模型,边缘设备部署模型

DeepSeek渣机部署编程用的模型&#xff0c;边缘设备部署模型 文章目录 DeepSeek渣机部署编程用的模型&#xff0c;边缘设备部署模型前言一、python代码二、构建一个简单的前端来接入接口2.读入数据 总结 前言 也许大家伙都想完成一些部署DeepSeek的东西&#xff0c;不过部署并…

VS2019打开《喜缺全书算法册》附带代码的方法兼述单元测试

下载地址(大量的题目和测试用例) 下载:地址一&#xff0c;几乎实时更新 GitCode下载。 下载地址二&#xff0c;不定期更新csdn打包下载 如果这两个链接打不开&#xff0c;可能是这两个资源处于审核状态&#xff0c;快则几分钟&#xff0c;慢则2天。 可以加本文末的&#xff31…

急停信号的含义

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在开发C#的运动控制程序的时候&#xff0c;一个必要的步骤就是确认设备按钮的急停…

小白学网络安全难吗?需要具备哪些条件?

作为一名零基础小白&#xff0c;想要转行IT学习一门新技术&#xff0c;且上手难度低、就业前景好、薪资待遇高、入行门槛低&#xff0c;网络安全是最值得的选择&#xff0c;掌握它之后你可以获得一份收入不错的工作。那么零基础学网络安全好学吗?以下是具体内容介绍。 首先&am…

IEEE期刊Word导出PDF注意事项

在系统上提交论文时候一般要求PDF文档&#xff0c;但是word直接转PDF可能存在一些问题&#xff1a; 部分图片不清晰。字体未嵌入PDF。间距发生了变化。字体发生了变化。一张图片显示不完全。 下面介绍word转PDF最稳妥的技巧以及如何实现全部字体的嵌入。 1. 操作流程 ① 另…

CEF132 编译指南 MacOS 篇 - depot_tools 安装与配置 (四)

1. 引言 在 CEF132&#xff08;Chromium Embedded Framework&#xff09;的编译过程中&#xff0c;depot_tools 扮演着举足轻重的角色。这套由 Chromium 项目精心打造的脚本和工具集&#xff0c;专门用于获取、管理和更新 Chromium 及其相关项目&#xff08;包括 CEF&#xff…

【C++高并发服务器WebServer】-16:UDP简单实现

本文目录 一、UDP通信流程二、UDP API2.1 sendto()2.2 recvfrom() 一、UDP通信流程 UDP通信的流程比较简单&#xff0c;下面这张图可以总结。 二、UDP API 2.1 sendto() UDP相关头文件如下。 #include <sys/types.h> #include <sys/socket.h>ssize_t sendto(…

k8s管理工具之lens

什么是lens Lens 是当前市场上最强大的K8S IDE。它是一个独立的单机应用&#xff0c;可以同时运行在macOS、Windows和Linux上。 作为K8S IDE&#xff0c;该有的它基本都有了&#xff01; 集群管理 导入已有集群 首先&#xff0c;你需要在 Lens 中添加你的 Kubernetes 集群。点…

SynthDetoxM - 现代LLM是少样本的并行去毒化数据标注器

SynthDetoxM: Modern LLMs are Few-Shot Parallel Detoxification Data Annotators https://arxiv.org/html/2502.06394v1 1. 主要内容 这篇论文提出了一个 用于生成多语言平行去毒化数据的管道&#xff0c;并介绍了SynthDetoxM&#xff0c;一个包含16,000个高质量去毒化句子对…

云服务器流量包用尽(中病毒)

1. 情况 腾讯云提示我账号欠费了&#xff0c;服务器存在恶意文件。。。 一看&#xff0c;流量包用尽超额了&#xff0c;CPU直接爆了。 用iftop监测一下网络流量。可以看到向多个IP发送了大量的流量。 看来是中病毒了&#xff0c;被当成 “肉鸡”&#xff0c;纳入“僵尸网络”…

RK3588视觉控制器与AI 算法:开启工业视觉检测新境界

在实际应用中&#xff0c;工业相机拍摄产品的图像&#xff0c;RK3588 迅速接收并进行预处理。AI 算法随即对图像进行深入分析&#xff0c;提取特征并与预设的标准进行对比&#xff0c;从而准确判断是否存在缺陷。 例如&#xff0c;在电子元件生产线上&#xff0c;RK3588 和 AI…

android的ViewModel这个类就是业务逻辑层吗

android的ViewModel这个类就是业务逻辑层吗&#xff1f; 相似&#xff1a;业务逻辑代码应该放在ViewModel这个类吗&#xff1f; 嗯&#xff0c;我现在在学习Android架构组件&#xff0c;特别是ViewModel。用户问ViewModel是否就是业务逻辑层&#xff0c;我需要仔细思考这个问题…

Gui-Guider1.8.1 数字时钟控件找不到定义,无法编译

我们在Gui-Guider中使用的一些控件&#xff0c;生成后会发现在LVGL源码中找不到该控件的定义&#xff0c;这时因为Gui-Guider中的一些控件是其自己编写的而不是LVGL提供的&#xff0c;那么我们该如何应用呢&#xff1f;这里拿Digital Clock数字时钟控件举例&#xff1a; 这里我…

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)安装适配 Java 8 的 Maven

好的&#xff0c;这是使用 SDKMAN! 安装适配 Java 8 的 Maven 的步骤&#xff1a; 前提条件: 安装 SDKMAN!: 如果你的系统上没有安装 SDKMAN!&#xff0c;请按照以下说明进行安装: curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-i…

【Stable Diffusion模型测试】测试ControlNet,没有线稿图?

相信很多小伙伴跟我一样&#xff0c;在测试Stable Diffusion的Lora模型时&#xff0c;ControlNet没有可输入的线稿图&#xff0c;大家的第一反应就是百度搜&#xff0c;但是能从互联网上搜到的高质量线稿图&#xff0c;要么收费&#xff0c;要么质量很差。 现在都什么年代了&a…

oracle表分区--范围分区

文章目录 oracle表分区分区的原因分区的优势oracle表分区的作用oracle表分区类型一、范围分区二、 创建分区表和使用&#xff1a;1、按照数值范围划分2、按照时间范围3、MAXVALUE2. 向现有表添加新的分区3、 分区维护和重新组织&#xff08;合并/删除&#xff09; oracle表分区…

InspurServer服务器监控指标详解

在现代信息化环境中&#xff0c;服务器的稳定运行对于业务连续性至关重要。InspurServer作为高性能服务器解决方案&#xff0c;其性能监控与优化更是不可或缺。本文将基于监控易一体化运维软件&#xff0c;深入探讨InspurServer服务器的关键监控指标&#xff0c;包括响应时间、…

基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest

1.概要 利用24色卡可以很快的分析到曝光误差&#xff0c;白平衡误差&#xff0c;噪声&#xff0c;色差&#xff0c;饱和度&#xff0c;gamma值。IQA或tuning工程一般用Imatest来手动计算&#xff0c;不便于产测部署&#xff0c;现利用opencv实现了imatest的全部功能&#xff0c…

Django开发入门 – 4.创建Django app

Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序&#xff0c;它会由一个或多个子模块组成&#xff0c;这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…

string

string 概念 string 字符串其实是一种更加高级的封装,string字符串中包含大量的方法, 这些方法使得字符串的操作变得更加简单。 C中将字符串直接作为一种类型,也就是string类型,使用string类型创建的 对象就是C的字符串。 使用C中提供的string是,必须添加头文件string。 st…