storybook组件属性详解:组件props到strorybook Args
首先我们查看官方文档:https://storybook.js.org/docs/vue/writing-docs/doc-block-argstable#customizing
官方的例子么有看到v-model如何处理,数组、对象等复杂属性定义。
这里一个是props的定义,一个是Controls
先看一下官方文档,https://storybook.js.org/docs/vue/essentials/controls
官方的类型只有这些:https://storybook.js.org/docs/vue/essentials/controls#annotation
| Data Tye | Control | Description |
|---|---|---|
| boolean | boolean |
Provides a toggle for switching between possible states.argTypes: { active: { control: 'boolean' }} |
| number | number |
Provides a numeric input to include the range of all possible values.argTypes: { even: { control: { type: 'number', min:1, max:30, step: 2 } }} |
range |
Provides a range slider component to include all possible values.argTypes: { odd: { control: { type: 'range', min: 1, max: 30, step: 3 } }} |
|
| object | object |
Provides a JSON-based editor component to handle the object's values. Also allows edition in raw mode. argTypes: { user: { control: 'object' }} |
| array | object |
Provides a JSON-based editor component to handle the values of the array. Also allows edition in raw mode. argTypes: { odd: { control: 'object' }} |
file |
Provides a file input component that returns an array of URLs. Can be further customized to accept specific file types. argTypes: { avatar: { control: { type: 'file', accept: '.png' } }} |
|
| enum | radio |
Provides a set of radio buttons based on the available options.argTypes: { contact: { control: 'radio', options: ['email', 'phone', 'mail'] }} |
inline-radio |
Provides a set of inlined radio buttons based on the available options.argTypes: { contact: { control: 'inline-radio', options: ['email', 'phone', 'mail'] }} |
|
check |
Provides a set of checkbox components for selecting multiple options.argTypes: { contact: { control: 'check', options: ['email', 'phone', 'mail'] }} |
|
inline-check |
Provides a set of inlined checkbox components for selecting multiple options.argTypes: { contact: { control: 'inline-check', options: ['email', 'phone', 'mail'] }} |
|
select |
Provides a drop-down list component to handle single value selection. argTypes: { age: { control: 'select', options: [20, 30, 40, 50] }} |
|
multi-select |
Provides a drop-down list that allows multiple selected values. argTypes: { countries: { control: 'multi-select', options: ['USA', 'Canada', 'Mexico'] }} |
|
| string | text |
Provides a freeform text input.argTypes: { label: { control: 'text' }} |
color |
Provides a color picker component to handle color values. Can be additionally configured to include a set of color presets. argTypes: { color: { control: { type: 'color', presetColors: ['red', 'green']} }} |
|
date |
Provides a datepicker component to handle date selection. argTypes: { startDate: { control: 'date' }} |
但这些都是简单类型,如果是复杂类型,react 很好办,比如:https://5a375b97f4b14f0020b0cda3-pmgvlqukun.chromatic.com/?path=/story/argtypes-typescript--unions
具体写法:
https://storybook.js.org/docs/vue/api/argtypes
const argTypes = {
label: {
name: 'label',
type: { name: 'string', required: false },
defaultValue: 'Hello',
description: 'demo description',
table: {
type: { summary: 'string' },
defaultValue: { summary: 'Hello' },
},
control: {
type: 'text'
}
}
}
table 能够更好的描述清属性
| Field | Description |
|---|---|
name |
The name of the property.argTypes: { label: { name: 'Something' } } |
type.name |
Sets a type for the property.argTypes: { label: { type: { name: 'number' } } } |
type.required |
Sets the property as optional or required.argTypes: { label: { type: { required: true } } |
description |
Sets a Markdown description for the property.argTypes: { label: { description: 'Something' } } |
| category | 分类 |
table.type.summary |
Provide a short version of the type.argTypes: { label: { table: { type: { summary: 'a short summary' } }}} |
table.type.detail |
Provides an extended version of the type.argTypes: { label: { table: { type: { detail: 'something' } }}} |
table.defaultValue.summary |
Provide a short version of the default value.argTypes: { label: { table: { defaultValue: { summary: 'Hello World' } }}} |
table.defaultValue.detail |
Provides a longer version of the default value.argTypes: { label: { table: { defaultValue: { detail: 'Something' } }}} |
control |
Associates a control for the property.argTypes: { label: { control: { type: 'text'} } }Read the Essentials documentation to learn more about controls. |
具体查看 https://storybook.js.org/docs/vue/writing-docs/doc-block-argstable
给一个案例
// SubmitForm.stories.ts
...
export default {
title: "ui组件/SubmitForm",
component: SubmitForm,
argTypes: {
refName: {
description: '表单组件引用',
type: {
required: true,
},
table: {
defaultValue: {
summary: 'defaultNameRef',
}
},
control: {
type: 'text'
}
},
schema: {
type: {
required: true,
},
table: {
type: {
summary: '渲染表单所需JSON结构',
detail: 'JSON结构包含表单渲染、交互所需要的必要字段,也包含表单的校验规则',
},
defaultValue: {
summary: '[]',
detail: `[
{
key: "moduleName",
name: "title",
type: SchemaType.Text,
label: "栏目名称",
placeholder: "请输入栏目名称",
attrs: {
//
},
rules: [
{
required: true,
message: "栏目名称必填~",
trigger: RuleTrigger.Blur,
},
],
}
]
`
}
}
},
runtimeChange: {
description: '实时监听表单的更新',
table: {
category: 'Events',
},
}
}
};
...
转载本站文章《storybook组件属性详解:组件props到strorybook Args》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/storybook/8895.html
storybook组件属性详解:组件props到strorybook Args的更多相关文章
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
- Android组件---四大布局的属性详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4372222.html Android常见布局有下面几种: LinearL ...
- vue高级进阶( 二 ) 8种组件通信详解
vue高级进阶( 二 ) 8种组件通信详解 猛兽总是独行,牛羊才成群结队. -------鲁迅 vue组件通信的重要性无需多言...但是你肯定没有全部掌握,所以这第二篇文章应运而生 props和$ ...
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...
- [安卓基础] 009.组件Activity详解
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- android:exported 属性详解
属性详解 标签: android 2015-06-11 17:47 27940人阅读 评论(7) 收藏 举报 分类: Android(95) 项目点滴(25) 昨天在用360扫描应用漏洞时,扫描结果, ...
- Android开发–Intent-filter属性详解
Android开发–Intent-filter属性详解 2011年05月09日 ⁄ Andriod ⁄ 暂无评论 ⁄ 被围观 1,396 views+ 如果一个 Intent 请求在一片数据上执行一个 ...
- Android零基础入门第80节:Intent 属性详解(下)
上一期学习了Intent的前三个属性,本期接着学习其余四个属性,以及Android系统常用内置组件的启动. 四.Data和Type属性 Data属性通常用于向Action属性提供操作的数据.Data属 ...
- Ext.tree.TreePanel 属性详解
Ext.tree.TreePanel 属性详解 2013-06-09 11:02:47| 分类: ExtJs|举报|字号 订阅 原文地址:http://blog.163.com/zzf_fly/b ...
- hikari连接池属性详解
hikari连接池属性详解 一.主要配置 1.dataSourceClassName 这是DataSourceJDBC驱动程序提供的类的名称.请查阅您的特定JDBC驱动程序的文档以获取此类名称,或参阅 ...
随机推荐
- 【数字图像处理】Matlab实现-图像增强-灰度图像增强
灰度图像增强的大致原理以及操作方法 面向作业编程 上图是大概对灰度图的增强处理 就是想让图片变得更好看 那么如何具体操作就看下面的代码了 这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂. % ...
- DO、DTO、BO、AO、VO、POJO定义和转换的正确姿势
一.引言DO.DTO.BO.AO.VO.POJO的概念看似简单,但是想区分好或者理解好也不容易,本文简单梳理一下. 通过各层POJO的使用,有助于提高代码的可读性和可维护性. ------------ ...
- HTTP请求中浏览器的缓存机制(转)
摘要:在Web开发过程中,我们可能会经常遇到浏览器缓存的问题.本文作者详细解释了浏览器缓存的机制,帮助读者更深层次的认识浏览器的缓存. 流程 当资源第一次被访问的时候,HTTP头部如下 (Reques ...
- 【爬虫】一次爬取某瓣top电影前250的学习记录
先贴上爬取的脚本: import requests import re for i in range(1,11): num=(i-1)*25 url=f"https://mo ...
- Git文件权限与filemode配置方法
一.问题 Clion是一个跨平台的IDE,今天将工程运行在Ubuntu下,在Git提交时发现有很多文件显示被更改,但是文件内容却是相同的. 二.Git 规则 Git对文件访问权限的管理与配置选项cor ...
- inget
万能密码考点 payload ?id=1' or 1=1--+
- java-图片添加水印
前言: 需求:需要在图片中添加水印,防止盗用 优缺点: 优点:保护版权,防止盗用 缺点 可能会影响图片的视觉效果:如果水印过大或过醒目,可能会影响图片的视觉效果. 可能会增加 ...
- Helm Chart 部署 Redis 的完美指南
目录 一.Helm介绍 二.安装Helm 三.配置Helm的repository 四.部署chart(以部署redis为例) 1. 搜索chart 2. 拉取chart 3. 修改values.yam ...
- Cocos Creator性能调优
一. 为什么要做性能优化 性能:是程序的一种优秀的能力.唤醒快.运行持久.稳定 这种能力正在游戏上能让你的用户感觉很爽,特征表现为加载快.运行流畅.不卡顿. 所以,性能优化的终极目标是,让你的用户体验 ...
- 微软官方发布的C#开源、免费、实用的Windows工具箱
前言 今天分享一款由微软官方发布的C#开源.免费.实用的Windows工具箱(帮助用户调整和简化Windows系统的体验,从而提高工作效率):Microsoft PowerToys. 项目介绍 Mic ...