通过 100+ 个技巧学习 Nuxt!

nuxt-color-picker
nuxt-color-picker

一个模块,添加了一个方便、可定制的 ColorPicker 组件,用于在您的应用程序中选择颜色。

nuxt-color-picker

npm versionnpm downloadsLicenseNuxt

Nuxt Color Picker

一个模块,添加了一个方便、可定制的 ColorPicker 组件,用于在您的应用程序中选择颜色。

此模块仅适用于 Nuxt 3

演示

特性

  • 易于连接
  • 完全组件自定义
  • 两种用例(作为颜色选择器和颜色选择器块)
  • 取色器支持
  • 颜色选择历史
  • 初始颜色显示
  • Alpha 范围可用性

用法

安装模块

npm install nuxt-color-picker

配置

export default defineNuxtConfig({
  modules: ["nuxt-color-picker"]
})

组件

该组件是任何 html 块的包装器,用于实现其自己的 ColorPicker 菜单 раскрытие 按钮。

type Props = {
  modelValue?: string;
  storageKey?: string;
  withAlpha?: boolean;
  withInitialColor?: boolean;
  withEyeDropper?: boolean;
  withHexInput?: boolean;
  withRgbInput?: boolean;
  withColorsHistory?: boolean | number;
  immediateEmit?: boolean;
};
type Emits = {
  (e: 'update:modelValue', v: string): void;
  (e: 'change', v: ModuleColorMultiType): void;
  (e: 'close'): void;
};
type Slot = {
  color: Ref<string | undefined>;
  hide: () => void;
  show: (event: MouseEvent) => void;
};
<script lang="ts" setup>
  const refVariable = ref('#000');
</script>

<template>
  <color-picker
    v-model="refVariable"
    v-slot="{ color, show }"
    @change="console.log('New color:', $event)"
    @close="console.log('ColorPicker is closed')"
  >
    Current color: {{ color }}
    <button @click="show">OPEN</button>
  </color-picker>
</template>

该组件是 Color Picker 的主块。它始终打开,可以作为块集成到应用程序的任何位置。

type Props = {
  modelValue?: string;
  storageKey?: string;
  withAlpha?: boolean;
  withInitialColor?: boolean;
  withEyeDropper?: boolean;
  withHexInput?: boolean;
  withRgbInput?: boolean;
  withColorsHistory?: boolean | number;
  immediateEmit?: boolean;
};
type Emits = {
  (e: 'update:modelValue', v: string): void;
  (e: 'change', v: ModuleColorMultiType): void;
};
<script lang="ts" setup>
  const refVariable = ref('#000');
</script>

<template>
  Current color: {{ refVariable }}
  <color-picker-block
    v-model="refVariable"
    @change="console.log('New color:', $event)"
  />
</template>

组件配置

属性

名称类型默认值描述
modelValuestring#000000添加双向通信的 v-model 变量
storageKeystringhistory存储中用于保存颜色历史记录的修饰符键
withAlphabooleanfalse它包括一个 alpha 光谱块以及使用颜色 alpha 范围的能力
withInitialColorbooleanfalse启用初始颜色的显示,该初始颜色是最初打开块时使用的颜色,并具有回滚的可能性
withEyeDropperbooleanfalse包含取色器块(如果支持),允许您使用颜色复制
withHexInputbooleanfalse包含一个手动输入十六进制值颜色的块。当启用 WithAlpha 时,将添加 alpha 范围
withRgbInputbooleanfalse包含一个手动输入 rgb 颜色值的块。当启用 WithAlpha 时,将添加 alpha 范围
withColorsHistoryboolean | numberfalse包含颜色历史记录块。指定一个数字 - 设置要显示的颜色 number 数量 (1<=n<=9)。指定 true 设置最大可能的颜色数量。当关闭 withAlpha 时,最大颜色数为 8
immediateEmitbooleanfalse启用在挂载组件时调用颜色更改事件

事件

名称类型描述
update:modelValuestring用于更新值的 v-model 系统事件
changeModuleColorMultiType在颜色更改时调用,并返回 rgba、hsv 和十六进制值的新颜色
closevoid在 ColorPicker 窗口关闭时调用

插槽

名称类型描述
colorRef<string | undefined>当前、选定的、响应式颜色
hide() => void关闭 ColorPicker 窗口的函数
show(event: MouseEvent) => void打开 ColorPicker 窗口的函数(需要 MouseEvent 来计算窗口的位置)

类型

type ModuleRGB = {
  r: number;
  g: number;
  b: number;
};
type ModuleRGBA = ModuleRGB & {
  a: number;
};
type ModuleHSV = {
  h: number;
  s: number;
  v: number;
};
type ModuleHEX = string;

type ModuleColorMultiType = {
  rgba: ModuleRGBA;
  hsv: ModuleHSV;
  hex: ModuleHEX;
};

配置示例

all-offall-onhex-4colors-without-alpha
配置基础完整仅 HEX 和 4 种颜色
属性with-alpha
with-initial-color
with-eye-dropper
with-hex-input
with-rgb-input
with-colors-history
with-hex-input
:with-colors-history="4"
only-alphargba-initialwithout-alpha
配置仅 alphaRGBA 和初始颜色全部不带 alpha
属性with-alphawith-alpha
with-initial-color
with-rgb-input
with-initial-color
with-eye-dropper
with-hex-input
with-rgb-input
with-colors-history

开发

  • 运行 npm run dev:prepare 以生成类型存根。
  • 使用 npm run dev 在开发模式下启动 playground。

部署

在您的 Cloudflare 帐户上使用 NuxtHub 在 Edge 上部署应用程序

npm run deploy

然后在 NuxtHub 管理界面 中查看您的服务器日志、分析等。

您也可以使用 Cloudflare Pages CI 进行部署。

许可证

MIT 许可证