DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

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

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

csdngif标识

目录

  • DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)
    • 📚前言
    • 📚进入安装好的DeepSeek
    • 📚页面效果
    • 📚指令输入
    • 📚think
      • 📘组件代码
      • 📘组件特点说明:
      • 📘额外建议:
    • 📚代码测试
    • 📚页面效果
    • 📚自己部署 DeepSeek 安装地址
    • 📚相关文章


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

DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

📚前言

DeepSeek 采用了一些独特的技术来提升其性能和效率。例如,在模型架构方面,DeepSeek 采用了混合专家(MoE)架构,这种架构能够根据不同的任务和输入数据,动态地选择最合适的子模型进行处理,从而提高模型的处理效率和准确性。在训练过程中,DeepSeek 采用了 FP8 混合精度训练技术,这种技术能够在保证模型精度的前提下,大幅降低训练成本和时间。

与其他大模型相比,DeepSeek 在性能、成本、功能等方面展现出了显著的优势。

在性能方面,DeepSeek 在多项评测中表现出色,其性能甚至可以与一些顶级闭源模型相媲美。例如,在数学、代码、自然语言推理等任务上,DeepSeek-R1 的性能与 OpenAI 的 o1 正式版持平 。在 C-Eval 数学测试中,DeepSeek 的准确率达到了 92.3%,而 GPT-4 的准确率为 88.1% 。这表明 DeepSeek 在处理复杂任务时具有强大的能力,能够为用户提供高质量的服务。

📚进入安装好的DeepSeek

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

打开搭建好的DeepSeek应用。

DeepSeek应用

进入应用。

进入DeepSeek应用

📚页面效果

页面效果

📚指令输入

已经创建好了一个基于Vue3的组合式API的项目(Composition API),并能正常运行起来,请帮我用 Vue3的组合式API(Composition API) 生成一个 开关切换(Switch) 的功能组件,所有代码都保存在components/Switch 下的文件夹中。功能组件的script标签中只有setup属性,使用普通 JavaScript 实现,不使用TypeScript。
功能要有,如下属性:

名称说明类型默认值
disabled是否禁用booleanfalse
sizeswitch 的大小enum(small,default,large,自定义大小)default
onIconwitch 状态为 on 时所显示图标string
onTextswitch 打开时的文字描述string
onValueswitch 状态为 on 时的值boolean/string/numbertrue
offIconwitch 状态为 off 时所显示图标string
offTextswitch 关闭时的文字描述string
offValueswitch 状态为 off 时的值boolean/string/numberfalse
nameswitch 对应的 name 属性string‘’
idinput 的 idstring‘’
如下事件
事件名说明类型
changeswitch 状态发生变化时的回调函数Function

你有更好的建议也可以添加,要注明。

下面是现有目录

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/
│ │ └── 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
│ │ └── AboutView.vue
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── public/ # 公共资源目录
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依赖包目录

📚think

嗯,我现在要帮用户创建一个基于Vue3组合式API的Switch功能组件。用户已经有了项目结构,需要我在components/Switch下生成对应的文件。首先,我得理解用户的需求。

用户要求这个Switch组件有多个属性,比如disabled、size、onIcon等等,还有相应的事件change。所有代码都要放在components/Switch目录里,并且script标签中只有setup属性,不能用TypeScript,只能用普通JavaScript。那我得确保整个组件是使用 Composition API 来实现的。

首先,我应该考虑如何在组合式API中定义一个可控的Switch。通常,组件可以通过ref来控制状态,但这里可能需要更灵活的处理,因为用户提供了很多属性,比如onValue、offValue,这些都可能影响switch的状态。所以,或许我需要用一个变量来表示当前的状态,并根据不同的属性进行响应。

接下来,我要处理各种属性。比如,disabled属性,如果为true的话,就不能交换状态。我需要在模板中添加一个控制是否禁用的条件。size属性可能影响到样式,所以我得根据size的值来设置相应的类名或者样式对象。

然后是图标部分,onIcon和offIcon分别对应switch开启和关闭时显示的图标。这意味着在模板中,我需要使用v-if或条件判断来决定哪个图标显示。同样的,onText和offText也是如此。

关于事件change,当switch状态变化时,应该触发一个函数回调。我可以通过计算属性或者直接在模板中用@change事件来处理。

接下来,我得考虑如何将这些属性和事件结合起来。在setup函数中,我需要定义ref来控制当前的状态,比如currentValue。然后根据不同的属性来初始设置这个值,比如如果onValue为true,可能initialCurrentValue设为true,否则false。或者,用户可能有不同的值类型,所以我得确保能够处理boolean、string、number等多种情况。

另外,id属性是输入的id,这可能在后续的使用中需要用到,特别是在测试或与其他组件配合使用时。所以,我应该将这个属性传递给input元素,以便更好地控制和访问。

然后,我要处理双向绑定。用户提供了一些属性,比如value或者v-model,但在组合式API中,这通常通过ref来实现的。因此,我需要将这些属性转换为对应的状态,并在模板中正确地更新它们。

我还需要考虑如何处理自定义大小的情况,size是一个枚举类型,包括small、default、large,还有自定义大小。这可能意味着当size是自定义时,可以通过计算来设置固定的px值,比如使用calc函数或者直接赋值。或者,我可以提供一个v-bind的类名,让用户可以在自己的样式中定制。

接下来,关于组件的结构,模板部分需要用Vue3的script setup语法。所以我得确保所有元素都用正确的方式引用,比如使用ref来控制状态,使用computed属性或者直接计算。

另外,我需要测试一下,当switch状态变化时,是否能够触发change事件,并且传递正确的值。这可能意味着在setup中定义一个函数,用来在状态改变时触发这个事件,并将新值传给回调函数。

还有一个问题是,用户提到“自定义大小”,这可能需要允许用户通过样式或者class来控制Switch的尺寸。因此,在组件中,我可以根据size的值添加相应的类名,比如小写、默认、大写等,这些对应着不同的宽度。

最后,我应该考虑是否还有其他属性或事件需要添加,或者是否有优化空间。比如,如果用户需要更多的属性,我可以建议在后续版本中增加。但现在按照需求来实现即可。

总结一下,我需要创建一个Switch组件,内部通过ref控制状态,根据各种属性(disabled、size、onIcon等)来调整外观和行为,并提供相应的change事件。整个过程要用Composition API,保持代码简洁。

📘组件代码

我帮你创建一个功能完善的Switch组件。以下是组件代码和调用示例:

vueAndDeepseek/src/components/Switch/Switch.vue

<template><div class="switch-container":class="[`switch-${effectiveSize}`,{ 'is-disabled': disabled },{ 'is-checked': isChecked }]":style="customSizeStyle"@click="toggleSwitch"><inputtype="checkbox":name="name":id="id"class="switch-input":disabled="disabled":checked="isChecked"@change="handleInput"><div class="switch-core"><div class="switch-inner"><span v-if="isChecked" class="on-content"><i v-if="onIcon" :class="onIcon"></i><span v-if="onText">{{ onText }}</span></span><span v-else class="off-content"><i v-if="offIcon" :class="offIcon"></i><span v-if="offText">{{ offText }}</span></span></div><div class="switch-button"></div></div></div>
</template><script setup>
import { computed } from 'vue'const props = defineProps({modelValue: {type: [Boolean, String, Number],default: false},disabled: {type: Boolean,default: false},size: {type: String,default: 'default',validator: (value) => ['small', 'default', 'large'].includes(value) || /^\d+px$/.test(value)},onIcon: String,onText: String,onValue: {type: [Boolean, String, Number],default: true},offIcon: String,offText: String,offValue: {type: [Boolean, String, Number],default: false},name: String,id: String
})const emit = defineEmits(['update:modelValue', 'change'])const isChecked = computed(() => {return props.modelValue === props.onValue
})const effectiveSize = computed(() => {return ['small', 'default', 'large'].includes(props.size) ? props.size : 'custom'
})const customSizeStyle = computed(() => {if (props.size.match(/^\d+px$/)) {const size = props.size.replace('px', '')return {'--switch-width': `${size * 2}px`,'--switch-height': `${size}px`,'--button-size': `${size - 8}px`}}return null
})const toggleSwitch = () => {if (props.disabled) returnconst newValue = isChecked.value ? props.offValue : props.onValueemit('update:modelValue', newValue)emit('change', newValue)
}const handleInput = (e) => {const newValue = e.target.checked ? props.onValue : props.offValueemit('update:modelValue', newValue)emit('change', newValue)
}
</script><style scoped>
.switch-container {position: relative;display: inline-block;vertical-align: middle;
}.switch-input {position: absolute;width: 0;height: 0;opacity: 0;margin: 0;
}.switch-core {position: relative;display: block;border-radius: 16px;background-color: #dcdfe6;transition: background-color 0.3s;cursor: pointer;
}.switch-core:hover {background-color: #c0c4cc;
}.switch-button {position: absolute;top: 4px;left: 4px;border-radius: 50%;background-color: #fff;transition: all 0.3s;box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}.switch-inner {position: absolute;top: 50%;transform: translateY(-50%);color: #fff;font-size: 12px;white-space: nowrap;overflow: hidden;
}/* 默认尺寸 */
.switch-default {--switch-width: 60px;--switch-height: 32px;--button-size: 24px;
}.switch-default .switch-core {width: var(--switch-width);height: var(--switch-height);
}.switch-default .switch-button {width: var(--button-size);height: var(--button-size);
}/* 小尺寸 */
.switch-small {--switch-width: 48px;--switch-height: 24px;--button-size: 16px;
}/* 大尺寸 */
.switch-large {--switch-width: 72px;--switch-height: 40px;--button-size: 32px;
}/* 自定义尺寸 */
.switch-custom .switch-core {width: var(--switch-width);height: var(--switch-height);
}.switch-custom .switch-button {width: var(--button-size);height: var(--button-size);
}/* 选中状态 */
.is-checked .switch-core {background-color: #409eff;
}.is-checked .switch-core:hover {background-color: #66b1ff;
}.is-checked .switch-button {left: calc(100% - var(--button-size) - 4px);
}/* 禁用状态 */
.is-disabled {opacity: 0.6;cursor: not-allowed;
}.on-content,
.off-content {display: flex;align-items: center;height: 100%;padding: 0 8px;
}.on-content {justify-content: flex-start;
}.off-content {justify-content: flex-end;
}
</style>

调用示例(可以在SwitchView.vue中使用):

<template><div class="switch-demo"><!-- 基础用法 --><h3>基础用法</h3><Switch v-model="switch1" />当前状态:{{ switch1 }}<!-- 带文字和图标 --><h3>带文字和图标</h3><Switchv-model="switch2"on-text="开启"off-text="关闭"on-icon="fas fa-sun"off-icon="fas fa-moon"/><!-- 禁用状态 --><h3>禁用状态</h3><Switch v-model="switch3" disabled /><!-- 自定义尺寸 --><h3>自定义尺寸</h3><Switch v-model="switch4" size="large" /><Switch v-model="switch4" size="60px" /><!-- 自定义值类型 --><h3>自定义值类型</h3><Switchv-model="switch5":on-value="'active'":off-value="'inactive'"/>当前值:{{ switch5 }}</div>
</template><script setup>
import { ref } from 'vue'
import Switch from '@/components/Switch/Switch.vue'const switch1 = ref(false)
const switch2 = ref(true)
const switch3 = ref(true)
const switch4 = ref(false)
const switch5 = ref('inactive')
</script>

📘组件特点说明:

  1. 完全支持v-model双向绑定
  2. 支持自定义开/关状态的值类型
  3. 灵活的尺寸控制(预设尺寸+自定义像素值)
  4. 完整的无障碍支持(通过隐藏的input元素)
  5. 平滑的过渡动画
  6. 完善的禁用状态处理

📘额外建议:

  1. 可以添加颜色自定义属性(active-color/inactive-color)
  2. 可以增加加载状态(loading)
  3. 可以添加表单验证支持
  4. 可以添加更多过渡动画效果
  5. 可以支持自定义插槽内容

📚代码测试

正常

📚页面效果

页面效果

📚自己部署 DeepSeek 安装地址

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

📚相关文章

 

———— 相 关 文 章 ————

 

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

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

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

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

  5. 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)

  6. 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )

  7. DeepSeek 助力 Vue 开发:打造丝滑的返回顶部按钮(Back to Top)

  8. DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)

  9. DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)

  10. DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)

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


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

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

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

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

相关文章

141,【1】buuctf web [SUCTF 2019]EasyWeb

进入靶场 代码审计 <?php // 定义函数get_the_flag&#xff0c;功能是处理文件上传相关操作 function get_the_flag() {// 注释说明&#xff1a;webadmin会每隔20分钟删除用户上传的文件$userdir "upload/tmp_" . md5($_SERVER[REMOTE_ADDR]);// 检查用户目录…

基于STM32的智能鱼塘养殖监控系统

1. 引言 水产养殖业正朝着智能化、精细化方向发展&#xff0c;传统养殖模式存在水质监控滞后、投喂不精准等问题。本文设计了一款基于STM32的智能鱼塘养殖监控系统&#xff0c;通过实时监测水质参数、自动投喂与远程管理&#xff0c;实现科学养殖&#xff0c;提高产量与经济效…

mapbox V3 新特性,添加下雪效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;mapbox 从入门到精通 文章目录 一、&#x1f340;前言1.1 ☘️mapboxgl.Map 地图对象…

Large Language Model Distilling Medication Recommendation Model

摘要&#xff1a;药物推荐是智能医疗系统的一个重要方面&#xff0c;因为它涉及根据患者的特定健康需求开具最合适的药物。不幸的是&#xff0c;目前使用的许多复杂模型往往忽视医疗数据的细微语义&#xff0c;而仅仅严重依赖于标识信息。此外&#xff0c;这些模型在处理首次就…

高血压危险因素分析(项目分享)

高血压危险因素分析&#xff08;项目分享&#xff09; 高血压作为一种极为常见的慢性疾病&#xff0c;正严重威胁着大众健康。它的发病机制较为复杂&#xff0c;涉及多个方面的因素。 在一份临床采集的数据的基础上&#xff0c;我们通过数据分析手段深入观察一下 BMI&#xf…

基于STM32的智能垃圾分类回收系统

1. 引言 随着城市化进程加快&#xff0c;传统垃圾处理方式已无法满足环保需求。本文设计了一款基于STM32的智能垃圾分类回收系统&#xff0c;通过图像识别、重量检测与自动分拣技术&#xff0c;实现垃圾精准分类&#xff0c;提高回收效率&#xff0c;助力城市可持续发展。 2. …

二、深入剖析线程安全性问题与底层原理

1.什么是线程安全&#xff1f;线程安全会带来哪些底层问题&#xff1f; 2.分析保证线程安全的三个性质-原子性、可见性、有序性 3.多场景剖析未保证原子性带来的问题 package imooc.atomic;public class AtomicTest {public static void main(String[] args) throws Interrupte…

IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini)

IntelliJ IDEA 接入 AI 编程助手&#xff08;Copilot、DeepSeek、GPT-4o Mini&#xff09; &#x1f4ca; 引言 近年来&#xff0c;AI 编程助手已成为开发者的高效工具&#xff0c;它们可以加速代码编写、优化代码结构&#xff0c;并提供智能提示。本文介绍如何在 IntelliJ I…

积家(Jaeger-LeCoultre):“钟表界的钟表师“(中英双语)

积家&#xff08;Jaeger-LeCoultre&#xff09;&#xff1a;瑞士高级制表的隐形巨匠 在瑞士高级制表领域&#xff0c;积家&#xff08;Jaeger-LeCoultre&#xff0c;简称JLC&#xff09; 被誉为“钟表界的钟表师”&#xff0c;它不仅是世界顶级腕表品牌之一&#xff0c;还为许…

Jenkins 新建配置Pipeline任务 三

Jenkins 新建配置Pipeline任务 三 一. 登录 Jenkins 网页输入 http://localhost:8080 输入账号、密码登录 一个没有创建任务的空 Jenkins 二. 创建 任务 图 NewItem 界面左上角 New Item 图NewItemSelect 1.Enter an item name&#xff1a;输入任务名 2.Select an ite…

盛铂科技 SMF106 低相位噪声贴片式频率综合器模块

在现代通信和电子设备领域&#xff0c;频率综合器作为关键组件&#xff0c;其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器&#xff0c;以其卓越的性能和独特设计&#xff0c;成为众多高性能系统的选择。 一、频率覆盖范围广&#xff0c;步进…

ros:ur机械臂初识

这是用来可视化的launch文件 比如&#xff0c;我运行 roslaunch ur_description view_ur3.launch ur3模型 ur3e模型 ur5模型 ur5e模型 ur10模型 ur20模型 ur30模型 后来我搜了一下 UR5 和 UR10 都是由 Universal Robots&#xff08;简称 UR&#xff09;生产的协作机器人&…

智能陪诊与远程问诊:AI驱动的互联网医院APP开发路线图

智能陪诊与远程问诊作为现在医疗变革的前沿阵地&#xff0c;正在为广大患者提供更为便捷、高效的医疗服务。特别是在互联网医院APP的开发过程中&#xff0c;AI技术的应用已成为提升用户体验和医疗服务质量的重要手段。本文将探讨如何基于AI技术开发智能陪诊与远程问诊功能的互联…

pnpm, eslint, vue-router4, element-plus, pinia

利用 pnpm 创建 vue3 项目 pnpm 包管理器 - 创建项目 Eslint 配置代码风格(Eslint用于规范纠错&#xff0c;prettier用于美观&#xff09; 在 设置 中配置保存时自动修复 提交前做代码检查 husky是一个 git hooks工具&#xff08;git的钩子工具&#xff0c;可以在特定实际执行特…

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具

格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具 功能&#xff1a;视频 音频 图片 文档PDF格式 各种转换&#xff0c;同格式调整压缩比例&#xff0c;调整大小 特色&#xff1a;果风图标 好看; 支持多任务队列&#xff0c;完成自动关机 下载地址&#xff1…

ai数字人分身系统开发源码saas化

#数字人分身系统# #数字人系统源码# #ai数字人123 123# 云罗抖去推数字人分身系统是一款融合了形象克隆、声音克隆、AI数字人分身、AI智能剪辑、智能文案等各种AI技术一体化的短视频营销工具&#xff0c;其核心功能优势主要体现在以下几方面&#xff1a; 真实度高&#xf…

基于Spring Boot的民宿租赁系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

李宏毅机器学习笔记:【6.Optimization、Adaptive Learning Rate】

Optimization 1.Adaptive Learning Rate2.不同的参数需要不同的学习率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up总结 critical point不一定是你在训练一个network时候遇到的最大的障碍。 1.Adaptive Learning Rate 也就是我们要给每个参数不同的…

CAS单点登录(第7版)2.规划

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; 规划 架构 系统组件 CAS 服务器和客户端构成了 CAS 系统体系结构的两个物理组件&#xff0c;它们通过各种协议进行通信。 CAS 服务器 CAS 服务器是基于 Spring Framework 构建的 Ja…

wx061基于ssm+vue+uniapp的疫情期间学生请假与销假系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…