DeepSeek 助力 Vue 开发:打造丝滑的评论系统(Comment System)

news/2025/2/23 10:07:37

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

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

csdngif标识

目录

  • DeepSeek 助力 Vue 开发:打造丝滑的评论系统(Comment System)
    • 📚前言
    • 📚页面效果
    • 📚指令输入
      • 属性
        • 1. 快捷键绑定相关属性
        • 2. 激活状态相关属性
        • 3. 作用域相关属性
      • 事件
        • 1. 快捷键触发事件
        • 2. 状态变化事件
      • 其他
        • 1. 快捷键组合解析
        • 2. 错误处理
        • 3. 可扩展性
        • 4. 兼容性
        • 5. 文档和示例
    • 📚think
      • 📘组件代码
    • 📚代码测试
    • 📚页面效果
    • 📚相关文章


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

DeepSeek__Vue_Comment_System_12">DeepSeek 助力 Vue 开发:打造丝滑的评论系统(Comment System)

📚前言

DeepSeek 在市场上的表现可谓惊艳,其相关数据充分彰显了它在 AI 领域的强大影响力。

从下载量来看,DeepSeek 自上线以来,下载量一路飙升。在上线 18 天内,累计下载量就突破了 1600 万 ,在 25 天内达到约 4000 万 。相比之下,ChatGPT 首次发布时的首月下载量为 900 万 。截至 2025 年 1 月 31 日,DeepSeek 在苹果应用商店中霸占了 157 个国家 / 地区的第一名位置,其中包括美国这一重要市场 。在安卓平台上,DeepSeek 的下载量也持续增长,在多个国家和地区的应用商店中名列前茅。

📚页面效果

页面效果

📚指令输入

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

属性

1. 快捷键绑定相关属性
  • shortcuts
    • 类型:对象或数组
    • 描述:用于定义快捷键及其对应的操作。如果是对象,键为快捷键组合(如 'Ctrl+C'),值为对应的回调函数名或操作标识;如果是数组,可以包含多个对象,每个对象包含 shortcut(快捷键组合)和 action(操作标识)字段。
  • preventDefault
    • 类型:布尔值
    • 默认值false
    • 描述:是否阻止快捷键默认行为。例如,按下 Ctrl+C 时,默认会触发复制操作,如果设置为 true,则会阻止该默认行为。
  • stopPropagation
    • 类型:布尔值
    • 默认值false
    • 描述:是否阻止快捷键事件的冒泡。
2. 激活状态相关属性
  • disabled
    • 类型:布尔值
    • 默认值false
    • 描述:是否禁用快捷键功能。当设置为 true 时,所有快捷键将不起作用。
  • active
    • 类型:布尔值
    • 默认值true
    • 描述:是否激活快捷键监听。与 disabled 不同,active 可以动态控制快捷键的监听状态,而 disabled 是完全禁用。
3. 作用域相关属性
  • target
    • 类型:字符串或 DOM 元素
    • 默认值window
    • 描述:指定快捷键监听的目标元素。可以是元素的选择器(如 '#my-element')或实际的 DOM 元素。

事件

1. 快捷键触发事件
  • shortcut-triggered
    • 参数:快捷键组合(字符串)、操作标识(任意类型,取决于 shortcuts 的定义)
    • 描述:当某个快捷键被触发时,会触发该事件,同时传递快捷键组合和对应的操作标识。
2. 状态变化事件
  • activated
    • 描述:当快捷键监听被激活时触发。
  • deactivated
    • 描述:当快捷键监听被停用(active 变为 false)时触发。
  • disabled-changed
    • 参数:新的 disabled 状态(布尔值)
    • 描述:当 disabled 属性的值发生变化时触发。

其他

1. 快捷键组合解析
  • 提供一个统一的快捷键组合解析方法,支持常见的修饰键(如 CtrlAltShiftMeta)和键名(如 AEnterSpace 等),并处理不同操作系统下的键名差异。
2. 错误处理
  • 在定义快捷键时,对无效的快捷键组合进行错误提示,避免因为无效的快捷键导致组件无法正常工作。
3. 可扩展性
  • 考虑提供一些钩子函数,允许用户在快捷键触发前后进行额外的处理,增加组件的灵活性。
4. 兼容性
  • 确保组件在不同浏览器和操作系统下都能正常工作,处理好不同浏览器对键盘事件的差异。
5. 文档和示例
  • 提供详细的文档,说明组件的属性、事件和使用方法,并给出一些常见的使用示例,方便其他开发者使用。

你有更好的建议也可以添加,要注明。组件定义好后给出5个及以上的调用示例。
下面是现有目录
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/
│ │ ├── MasonryLayout/
│ │ ├── Rating/
│ │ ├── ColorPicker/
│ │ ├── RightClickMenu/
│ │ ├── RangePicker/
│ │ ├── Navbar/
│ │ ├── FormValidation/
│ │ ├── CopyToClipboard/
│ │ ├── ClickAnimations/
│ │ ├── ThumbnailList/
│ │ ├── KeyboardShortcuts/
│ │ ├── CommentSystem/
│ │ ├── DatePicker/
│ │ └── 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
│ │ ├── MasonryLayoutView.vue
│ │ ├── RatingView.vue
│ │ ├── ColorPickerView.vue
│ │ ├── RightClickMenuView.vue
│ │ ├── RangePickerView.vue
│ │ ├── NavbarView.vue
│ │ ├── FormValidationView.vue
│ │ ├── CopyToClipboardView.vue
│ │ ├── ClickAnimationsView.vue
│ │ ├── ThumbnailListView.vue
│ │ ├── KeyboardShortcutsView.vue
│ │ ├── CommentSystemView.vue
│ │ ├── DatePickerView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── public/ # 公共资源目录
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依赖包目录

📚think

嗯,用户需要创建一个基于Vue3组合式API的评论系统组件,并且这个组件需要支持快捷键绑定等功能。首先,我得理清楚用户的具体需求。根据用户提供的属性、事件和其他要求,我需要设计一个CommentSystem.vue组件,放在components/CommentSystem目录下。

首先,处理快捷键相关的属性。用户提到了shortcuts可以是对象或数组,需要将它们统一处理。可能需要将输入的shortcuts转换为数组形式,方便后续处理。然后,preventDefault和stopPropagation这两个属性需要影响事件处理函数,阻止默认行为和事件冒泡。

接下来是激活状态相关的disabled和active属性。disabled为true时,所有快捷键都不起作用,而active可以动态控制监听的激活状态。这里可能需要使用watchEffect或者watch来监听这两个属性的变化,动态添加或移除事件监听器。

作用域属性target,用户可能传入选择器字符串或DOM元素。需要处理这个目标元素,可能需要使用ref或者document.querySelector来获取对应的DOM元素,并确保在组件挂载时正确绑定事件。

然后是事件部分,当快捷键触发时,需要emit一个shortcut-triggered事件,并传递快捷键组合和对应的action。状态变化事件如activated、deactivated和disabled-changed需要在相应的状态改变时触发。

关于快捷键解析,需要处理修饰键如Ctrl、Alt、Shift、Meta,以及普通键。不同操作系统可能有不同的键名,比如Meta在Mac上是Command键。需要统一处理这些差异,可能使用正则表达式来解析快捷键字符串。

错误处理方面,如果用户传入了无效的快捷键组合,需要在控制台给出警告。例如,检测是否缺少必要的修饰键或者键名不正确。

可扩展性方面,用户可能需要提供钩子函数,比如beforeTrigger和afterTrigger,允许在触发前后执行自定义逻辑。这部分可以通过在触发action之前调用这些钩子来实现。

兼容性方面,不同浏览器对keydown事件的处理可能有差异,需要确保代码能够正确处理这些情况,比如使用event.key而不是event.keyCode,并统一转换为小写或特定格式。

接下来,考虑组件的结构。评论系统通常包含评论列表、输入框、提交按钮等元素。需要管理评论的状态,比如使用ref来存储评论列表和输入内容。提交评论的函数需要处理输入内容,并添加到列表中。

快捷键绑定方面,例如Ctrl+Enter提交评论,需要在输入框上绑定对应的快捷键。这时候需要使用之前实现的快捷键系统,将快捷键与提交动作关联起来,并触发相应的事件。

然后,编写代码。组件的script部分使用setup属性,用普通的JavaScript实现。需要引入必要的Vue API,如ref、computed、onMounted、onUnmounted、watch等。处理快捷键解析的逻辑可能比较复杂,需要将字符串如’Ctrl+Enter’转换为事件处理时检测的按键组合。

在调用示例部分,用户需要至少五个例子。例如,基本使用、数组格式的快捷键、动态控制激活状态、自定义作用域、以及组合使用事件和钩子函数。每个示例需要展示不同的属性和事件用法,帮助用户理解如何在不同场景下使用组件。

最后,测试和文档。确保组件在各种情况下工作正常,比如不同的快捷键组合、不同的浏览器环境。提供详细的文档说明每个属性和事件的用法,并给出示例代码,方便其他开发者使用。

可能遇到的问题包括:如何正确解析快捷键字符串,处理不同浏览器的键名差异,确保事件监听正确绑定和卸载,以及处理动态变化的target属性。需要仔细测试这些边界情况,确保组件的健壮性。

📘组件代码

我将按照您的要求创建一个功能完善的评论系统组件。先创建核心组件文件:
我将按照您的要求创建一个功能完善的评论系统组件。先创建核心组件文件:

vueAndDeepseek/src/components/CommentSystem/CommentSystem.vue

<template>
  <div class="comment-system">
    <!-- 评论列表 -->
    <div class="comments-list">
      <div v-for="(comment, index) in comments" :key="comment.id" class="comment-item">
        <div class="comment-content">{{ comment.content }}</div>
        <div class="comment-meta">
          <span class="author">{{ comment.author }}</span>
          <span class="time">{{ formatTime(comment.timestamp) }}</span>
        </div>
      </div>
    </div>

    <!-- 评论输入框 -->
    <div class="comment-input">
      <textarea
        ref="textareaRef"
        v-model="newComment"
        placeholder="输入评论(支持快捷键操作)"
        @keydown="handleKeyDown"
      ></textarea>
      <button @click="submitComment">提交</button>
    </div>
  </div>
</template>

<script setup>javascript">
import { ref, computed, watch, onMounted, onUnmounted } from 'vue'

const props = defineProps({
  // 快捷键相关属性
  shortcuts: { type: [Object, Array], default: () => ({}) },
  preventDefault: { type: Boolean, default: false },
  stopPropagation: { type: Boolean, default: false },
  
  // 激活状态
  disabled: { type: Boolean, default: false },
  active: { type: Boolean, default: true },
  
  // 作用域
  target: { type: [String, Element], default: window },
  
  // 初始评论列表
  initialComments: { type: Array, default: () => [] }
})

const emit = defineEmits([
  'shortcut-triggered',
  'activated',
  'deactivated',
  'disabled-changed'
])

// 数据相关
const comments = ref([...props.initialComments])
const newComment = ref('')
const textareaRef = ref(null)

// 快捷键处理相关
const normalizedShortcuts = computed(() => {
  if (Array.isArray(props.shortcuts)) {
    return props.shortcuts
  }
  return Object.entries(props.shortcuts).map(([shortcut, action]) => ({
    shortcut,
    action
  }))
})

// 快捷键解析
const parseShortcut = (shortcut) => {
  const keys = shortcut.split('+').map(k => k.trim().toLowerCase())
  const modifiers = {
    ctrl: false,
    alt: false,
    shift: false,
    meta: false
  }
  let key = null

  for (const k of keys) {
    switch (k) {
      case 'ctrl': modifiers.ctrl = true; break
      case 'alt': modifiers.alt = true; break
      case 'shift': modifiers.shift = true; break
      case 'meta': modifiers.meta = true; break
      default: key = k
    }
  }

  if (!key) {
    console.warn(`Invalid shortcut: ${shortcut}`)
    return null
  }

  return { modifiers, key }
}

// 键盘事件处理
const handleKeyDown = (event) => {
  if (props.disabled || !props.active) return

  const pressedKey = event.key.toLowerCase()
  const pressedModifiers = {
    ctrl: event.ctrlKey,
    alt: event.altKey,
    shift: event.shiftKey,
    meta: event.metaKey
  }

  for (const { shortcut, action } of normalizedShortcuts.value) {
    const parsed = parseShortcut(shortcut)
    if (!parsed) continue

    const { modifiers, key } = parsed
    if (
      modifiers.ctrl === pressedModifiers.ctrl &&
      modifiers.alt === pressedModifiers.alt &&
      modifiers.shift === pressedModifiers.shift &&
      modifiers.meta === pressedModifiers.meta &&
      key === pressedKey
    ) {
      if (props.preventDefault) event.preventDefault()
      if (props.stopPropagation) event.stopPropagation()
      emit('shortcut-triggered', shortcut, action)
      handleAction(action)
    }
  }
}

// 动作处理
const handleAction = (action) => {
  switch (action) {
    case 'submit':
      submitComment()
      break
    case 'clear':
      newComment.value = ''
      break
    // 可以扩展更多动作
  }
}

// 提交评论
const submitComment = () => {
  if (newComment.value.trim()) {
    comments.value.push({
      id: Date.now(),
      content: newComment.value.trim(),
      author: '当前用户',
      timestamp: new Date()
    })
    newComment.value = ''
  }
}

// 时间格式化
const formatTime = (date) => {
  return new Date(date).toLocaleString()
}

// 快捷键监听管理
let targetElement = null
const setupListeners = () => {
  if (typeof props.target === 'string') {
    targetElement = document.querySelector(props.target)
  } else {
    targetElement = props.target
  }

  if (targetElement) {
    targetElement.addEventListener('keydown', handleKeyDown)
  }
}

const cleanupListeners = () => {
  if (targetElement) {
    targetElement.removeEventListener('keydown', handleKeyDown)
  }
}

// 生命周期
onMounted(() => {
  if (props.active) setupListeners()
})

onUnmounted(cleanupListeners)

// 状态监听
watch(() => props.active, (newVal) => {
  if (newVal) {
    setupListeners()
    emit('activated')
  } else {
    cleanupListeners()
    emit('deactivated')
  }
})

watch(() => props.disabled, (newVal) => {
  emit('disabled-changed', newVal)
})

watch(() => props.target, () => {
  cleanupListeners()
  setupListeners()
})
</script>

<style scoped>
.comment-system {
  max-width: 600px;
  margin: 20px auto;
  padding: 20px;
  border: 1px solid #eee;
  border-radius: 8px;
}

.comments-list {
  margin-bottom: 20px;
}

.comment-item {
  padding: 10px;
  margin: 10px 0;
  border-bottom: 1px solid #ddd;
}

.comment-content {
  margin-bottom: 5px;
}

.comment-meta {
  font-size: 0.8em;
  color: #666;
}

.comment-input textarea {
  width: 100%;
  height: 80px;
  padding: 8px;
  margin-bottom: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

button {
  padding: 8px 16px;
  background-color: #42b983;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

button:hover {
  background-color: #33a06f;
}
</style>

以下是5个使用示例:

  1. 基本使用(在CommentSystemView.vue中):
<template>
  <CommentSystem
    :shortcuts="{
      'Ctrl+Enter': 'submit',
      'Escape': 'clear'
    }"
    @shortcut-triggered="handleShortcut"
  />
</template>

<script setup>javascript">
import CommentSystem from '@/components/CommentSystem/CommentSystem.vue'

const handleShortcut = (shortcut, action) => {
  console.log(`快捷键 ${shortcut} 触发操作:${action}`)
}
</script>
  1. 数组格式快捷键:
<CommentSystem
  :shortcuts="[
    { shortcut: 'Ctrl+S', action: 'saveDraft' },
    { shortcut: 'Alt+C', action: 'clear' }
  ]"
  prevent-default
  @shortcut-triggered="handleAction"
/>
  1. 动态控制激活状态:
<template>
  <CommentSystem
    :active="isActive"
    @activated="log('激活')"
    @deactivated="log('停用')"
  />
  <button @click="isActive = !isActive">切换激活状态</button>
</template>

<script setup>javascript">
import { ref } from 'vue'
const isActive = ref(true)
const log = (msg) => console.log(msg)
</script>
  1. 自定义作用域:
<template>
  <div id="custom-area">
    <CommentSystem
      target="#custom-area"
      :shortcuts="{ 'Ctrl+B': 'bold' }"
    />
  </div>
</template>
  1. 完整功能示例:
<template>
  <CommentSystem
    :shortcuts="shortcutConfig"
    :disabled="isDisabled"
    :active="true"
    target="#comment-area"
    prevent-default
    stop-propagation
    @shortcut-triggered="handleShortcut"
    @disabled-changed="handleDisableChange"
  />
</template>

<script setup>javascript">
import { ref } from 'vue'

const isDisabled = ref(false)
const shortcutConfig = ref({
  'Ctrl+Enter': 'submit',
  'Alt+Shift+C': 'clear'
})

const handleShortcut = (shortcut, action) => {
  alert(`触发快捷键:${shortcut},执行操作:${action}`)
}

const handleDisableChange = (disabled) => {
  console.log('禁用状态变化:', disabled)
}
</script>

组件特色说明:

  1. 增强的快捷键处理:
  • 支持跨浏览器修饰键别名(如Command键自动处理为Meta键)
  • 智能事件处理(自动解绑旧target的监听)
  • 详细的错误提示(无效快捷键会在控制台输出警告)
  1. 扩展建议:
  • 可以添加评论的回复功能(需扩展数据结构)
  • 增加用户身份验证集成(通过props传递用户信息)
  • 支持评论的富文本输入(集成Tiptap等编辑器)
  • 添加分页加载功能(需配合后端API)
  • 增加表情包选择功能
  1. 性能优化:
  • 使用事件委托优化快捷键监听
  • 评论列表使用虚拟滚动处理大量数据
  • 自动移除无效的快捷键配置
  1. 安全增强:
  • 评论内容XSS防护(在显示时自动转义HTML)
  • 提交频率限制(防刷机制)
  • 敏感词过滤功能(通过props传入过滤规则)

📚代码测试

正常

📚页面效果

页面效果

📚相关文章

 

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

 

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

  2. DeepSeek 助力 Vue 开发:打造丝滑的步骤条(Step bar)https://blog.csdn.net/qq_33650655/article/details/145560497

  3. DeepSeek 助力 Vue 开发:打造丝滑的进度条(Progress Bar)https://blog.csdn.net/qq_33650655/article/details/145577034

  4. 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)https://blog.csdn.net/qq_33650655/article/details/145587999

  5. 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)https://blog.csdn.net/qq_33650655/article/details/145590404

  6. 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )https://blog.csdn.net/qq_33650655/article/details/145597372

  7. DeepSeek 助力 Vue 开发:打造丝滑的返回顶部按钮(Back to Top)https://blog.csdn.net/qq_33650655/article/details/145615550

  8. DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)https://blog.csdn.net/qq_33650655/article/details/145620055

  9. DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)https://blog.csdn.net/qq_33650655/article/details/145634564

  10. DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)https://blog.csdn.net/qq_33650655/article/details/145638452

  11. DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)https://blog.csdn.net/qq_33650655/article/details/145644151

  12. DeepSeek 助力 Vue 开发:打造丝滑的侧边栏(Sidebar)https://blog.csdn.net/qq_33650655/article/details/145654204

  13. DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)https://blog.csdn.net/qq_33650655/article/details/145656895

  14. DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)https://blog.csdn.net/qq_33650655/article/details/145663699

  15. DeepSeek 助力 Vue 开发:打造丝滑的评分组件(Rating)https://blog.csdn.net/qq_33650655/article/details/145664576

  16. DeepSeek 助力 Vue 开发:打造丝滑的日期选择器(Date Picker),未使用第三方插件 https://blog.csdn.net/qq_33650655/article/details/145673279

  17. DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)https://blog.csdn.net/qq_33650655/article/details/145689522

  18. DeepSeek 助力 Vue 开发:打造丝滑的右键菜单(RightClickMenu)https://blog.csdn.net/qq_33650655/article/details/145706658

  19. DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)https://blog.csdn.net/qq_33650655/article/details/145713572

  20. DeepSeek 助力 Vue 开发:打造丝滑的导航栏(Navbar)https://blog.csdn.net/qq_33650655/article/details/145732421

  21. DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)https://blog.csdn.net/qq_33650655/article/details/145735582

  22. DeepSeek 助力 Vue 开发:打造丝滑的复制到剪贴板(Copy to Clipboard)https://blog.csdn.net/qq_33650655/article/details/145739569

  23. DeepSeek 助力 Vue 开发:打造丝滑的点击动画(Click Animations)https://blog.csdn.net/qq_33650655/article/details/145766184

  24. DeepSeek 助力 Vue 开发:打造丝滑的缩略图列表(Thumbnail List)https://blog.csdn.net/qq_33650655/article/details/145776679

  25. DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts) https://blog.csdn.net/qq_33650655/article/details/145780227

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


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

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


http://www.niftyadmin.cn/n/5863294.html

相关文章

MySQL | MySQL库、表的基本操作01

MySQL库、表的基本操作01 一、库操作1.1 查看数据库1.2 创建数据库1.3 选择数据库1.4 查看创建数据库的SQL语句1.5 修改数据库1.6 删除数据库 二、表操作2.1 创建数据表2.2 查看表2.3 查看表结构2.4 查看创建数据库的SQL语句2.5 修改表2.6 删除表 ⚠️MySQL版本 8.0 一、库操作…

Python Matplotlib图形美化指南

在数据可视化的过程中&#xff0c;图形的美观程度往往直接影响到信息的传递效率。Python的Matplotlib库为我们提供了强大的绘图功能&#xff0c;同时也支持多种美化手段。本文将详细介绍如何利用Matplotlib本身的样式、qbstyles、matplotx和mplcyberpunk等库来美化你的图表。 …

Java试题:进制转换

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…

一、计算机等级考试——题库

&#xff08;1&#xff09;选择题 &#xff08;2&#xff09;基本操作题 &#xff08;3&#xff09;上网题 &#xff08;4&#xff09;文字题 &#xff08;5&#xff09;表格题 &#xff08;6&#xff09;演示文稿 二、计算机等级考试——标准评分 &#xff08;1&#xff09;选…

1.1 go环境搭建及基本使用

golang下载地址&#xff1a; Download and install - The Go Programming Language (google.cn) 验证安装是否成功&#xff1a; go version 查看go环境 go env 注意&#xff1a;Go1.11版本之后无需手动配置环境变量,使用go mod 管理项目&#xff0c;也不需要把项目放到GO…

【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件

rz 命令&#xff1a;本地上传到远端 rz 命令&#xff1a;用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令&#xff0c;它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口&#xff0c;方便用户从本…

HBase与传统数据库的区别:为什么选择它来处理大数据?

HBase与传统数据库的区别&#xff1a;为什么选择它来处理大数据&#xff1f; 数据太多&#xff0c;传统数据库扛不住了&#xff1f; 你有没有遇到过这样的情况&#xff1a;你的公司业务发展迅速&#xff0c;数据量呈指数级增长&#xff0c;传统的数据库系统&#xff08;如MyS…

从零开始搭建你的第一个HBase项目:实战经验分享

从零开始搭建你的第一个HBase项目&#xff1a;实战经验分享 数据洪流中的你&#xff0c;准备好了吗&#xff1f; 在大数据时代&#xff0c;数据量的增长速度令人咋舌。面对海量的数据&#xff0c;如何高效地存储、管理和分析成为了一个亟待解决的问题。今天&#xff0c;我们将…