@cloud-ru/ds-uikit-product-button-predefined

中文文档
1.0.45发布于 2026/11/11Apache-2.0TypeScriptESM + CJS近 30 天下载 7153

函数 - \ \ \ \ (桌面) \ 模式 (移动) .

中文使用文档
文档目录15 节
  1. Когда
  2. Анатомия
  3. 触发
  4. 丢弃列表
  5. 项目
  6. 大小( 默认) s (中文(简体) )
  7. 外观( 默认) neutral (中文(简体) )
  8. 打开/ 在打开更改上
  9. Установка
  10. Базовый
  11. Примеры
  12. 桌面基础
  13. 桌面打开状态
  14. 移动布局
  15. 道具

按钮裁剪

@cloud-ru/ds-uikit-product-button-predefined - 函数 - \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.

Кнопка view='function' с AdaptiveDroplist时间轴: 桌面 —— 说 Droplist из @cloud-ru/ds-list时 移动 —— 说 @cloud-ru/ds-modal со. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 AdaptiveProvider (см. @cloud-ru/ds-adaptive(原始内容存档于2018-10-25). ). {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 PriceSummary {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢.

Когда

  • {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢.
  • 台式电脑 台式电脑 台式电脑.

Когда не нужен ButtonDropdown数字 :

  • {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}=========================================================== -=========================================================================================================================================================================== Dropdown。 。 。 .
  • {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 Button view='function'。 。 。 .

Анатомия

触发

Button view='function' appearance='neutral' 页:1 buttonFunctionNeutral \ \ \ \ \ label {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}上下两地 При open={true} {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢 data-pressed - \ \ \ \ \ \ \ \ stateLayer/text/opacity (прозрачность标签/相) @cloud-ru/ds-materials) (中文(简体) ).

丢弃列表

ButtonDropdown рендерит Droplist из @cloud-ru/ds-list . . . . . AdaptiveProvider说吧

  • 桌面 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得怎么样.
  • 移动 - список уходит уходит в в @cloud-ru/ds-list) (中文(简体) ).

项目

Массив Droplist (单位:千美元)content.label, (中文(简体) ), onClick, (中文(简体) ), id) (中文(简体) ). При closeDroplistOnItemClick {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢.

大小( 默认) s(中文(简体) )

  • xs - \ \ \ \ \ \ \ \ \ \ \ s (алиас.
  • s ——компактный.
  • m ——средний.
  • l ——крупный.

外观( 默认) neutral(中文(简体) )

~ ~ ~ ~ ~ ~ ~ Button view='function'数字 :

  • neutral ——нейтральный,основной.
  • primary - 额...
  • critical ——критическое.

打开/ 在打开更改上

控制 API QQ useValueControl (как @cloud-ru/ds-utils) (中文(简体) ).

Установка

pnpm add @cloud-ru/ds-uikit-product-button-predefined
import { ButtonDropdown } from '@cloud-ru/ds-uikit-product-button-predefined'

Базовый

<ButtonDropdown
  label='Period'
  size='s'
  closeDroplistOnItemClick
  items={[
    { id: 'month', content: { label: 'Month' }, onClick: () => setPeriod('month') },
    { id: 'year', content: { label: 'Year' }, onClick: () => setPeriod('year') },
  ]}
/>

Примеры

{/* 客户端:只 — Droplist {} {} { { { { {}} { { { { { { { { }} { { } { { { }}} { { { { { { } { { }} { }} { } { { } } { { } { { { } } } { { { { } } { { } { } { } { } { } { { } { { } { { { } } { } { { } { } { } { } { } { } / { } { } { } { } { { { } { { }

桌面基础

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢.

import { AdaptiveProvider, LAYOUT_TYPE } from '@cloud-ru/ds-adaptive';
import { ButtonDropdown } from '@cloud-ru/ds-uikit-product-button-predefined';
import { useState } from 'react';

const periods = [
  { id: 'month', label: 'Month' },
  { id: 'year', label: 'Year' },
];

export function DesktopBasic() {
  const [period, setPeriod] = useState(periods[0]);

  const items = periods.map(option => ({
    id: option.id,
    content: { label: option.label },
    onClick: () => setPeriod(option),
  }));

  return (
    <AdaptiveProvider layoutType={LAYOUT_TYPE.Desktop}>
      <ButtonDropdown label={period.label} size='s' items={items} closeDroplistOnItemClick />
    </AdaptiveProvider>
  );
}

桌面打开状态

(原始内容存档于2017-10-21) (中文(简体) ).

import { AdaptiveProvider, LAYOUT_TYPE } from '@cloud-ru/ds-adaptive';
import { ButtonDropdown } from '@cloud-ru/ds-uikit-product-button-predefined';
import { useState } from 'react';

const periods = [
  { id: 'month', label: 'Month' },
  { id: 'year', label: 'Year' },
];

export function DesktopOpen() {
  const [period, setPeriod] = useState(periods[0]);

  const items = periods.map(option => ({
    id: option.id,
    content: { label: option.label },
    onClick: () => setPeriod(option),
  }));

  return (
    <AdaptiveProvider layoutType={LAYOUT_TYPE.Desktop}>
      <ButtonDropdown label={period.label} size='m' open items={items} />
    </AdaptiveProvider>
  );
}

移动布局

适应性Provider布局 Type=mobile QQ 模式QQ.

import { AdaptiveProvider, LAYOUT_TYPE } from '@cloud-ru/ds-adaptive';
import { ButtonDropdown } from '@cloud-ru/ds-uikit-product-button-predefined';
import { useState } from 'react';

const periods = [
  { id: 'month', label: 'Month' },
  { id: 'year', label: 'Year' },
];

export function MobileLayout() {
  const [period, setPeriod] = useState(periods[0]);

  const items = periods.map(option => ({
    id: option.id,
    content: { label: option.label },
    onClick: () => setPeriod(option),
  }));

  return (
    <AdaptiveProvider layoutType={LAYOUT_TYPE.Mobile}>
      <ButtonDropdown label={period.label} size='s' closeDroplistOnItemClick items={items} />
    </AdaptiveProvider>
  );
}

道具

按下按钮

Prop类型默认说明
appearance"critical" | "neutral" | "primary"neutralВариант
as"button"—— 说============================================================================================ (============================================================================ 链接 QQ 反应- router- dom)
classNamestring—— 说Дополнительный
Класс.
closeDroplistOnItemClickbooleanfalse{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢.
=============================================================================================== (===============================================================================
closeOnPopstateboolean—— 说{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
counterCounterProps—— 说计数器. appearance можно(一作相出.
data-test-idstring—— 说
disabledboolean—— 说Отключена
fullWidthboolean—— 说{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
innerRefPolymorphicRef—— 说参考: реальный DOM-элемент/инстанс,который as。 。 。 .
Используем,чтобы也 forwardRef (原始内容存档于2018-09-21) (英语).
itemsBaseItemWithoutNonGroup | CommonGroupItem | Item | ScrollProps—— 说{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
labelstring—— 说Текст
loadingboolean—— 说Состояние
minWidthboolean—— 说Минимальная(ширина)min-width (原始内容存档于2018-09-28). QQ. По true。 。 。 .
false . . . . . .
onOpenChange((open: boolean) => void)—— 说Колбэк.
openboolean—— 说Контролируемое.
placement"bottom" | "bottom-end" | "bottom-start" | "left" | "left-end" | "left-start" | "right" | "right-end" | "right-start" | "top" | "top-end" | "top-start"top(原始内容存档于2019-09-29) (中文(中国大陆) ).
size"l" | "m" | "s" | "xs"sРазмер; для xs применяется s。 。 。 .
triggerClassNamestring—— 说CSS - класс триггера
  • ButtonDropdownSize =: "l" | "m" | "s" | "xs"

版本与发布记录

@cloud-ru/ds-uikit-product-button-predefined 共发布 176 个版本,首次发布于 2026/08/18;过去 12 个月发布了 176 个版本。

版本发布日期距今
1.0.45latest2026/11/11今天
1.0.45-preview-e8fe6b56.0preview2026/11/11今天
1.0.45-preview-c0e895ed.02026/11/11今天
1.0.45-preview-90b10112.02026/11/11今天
1.0.45-preview-fd7dd437.02026/11/101 天前
1.0.45-preview-9a75a2a9.02026/11/101 天前

关于 @cloud-ru/ds-uikit-product-button-predefined 的常见问题

@cloud-ru/ds-uikit-product-button-predefined 是什么?

函数 - \ \ \ \ (桌面) \ 模式 (移动) .

如何安装 @cloud-ru/ds-uikit-product-button-predefined?

在项目目录运行 npm install @cloud-ru/ds-uikit-product-button-predefined,或使用 pnpm add / yarn add / bun add。

@cloud-ru/ds-uikit-product-button-predefined 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cloud-ru/ds-uikit-product-button-predefined 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloud-ru/ds-uikit-product-button-predefined 可以商用吗?

@cloud-ru/ds-uikit-product-button-predefined 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cloud-ru/ds-uikit-product-button-predefined 的下载量有多少?

根据 npm 官方下载统计,@cloud-ru/ds-uikit-product-button-predefined 在 2026/10/10 – 2026/11/08 这 30 天内被下载 7,153 次,日均约 238 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cloud-ru/ds-uikit-product-button-predefined 还在维护吗?

最新版本 1.0.45 发布于 2026/11/11(今天);至今共发布 176 个版本,其中过去 12 个月发布了 176 个;首次发布于 2026/08/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。