当前位置: 首页 > 编程日记 > 正文

Storybook 5.0正式发布:有史以来变化最大的版本\n

Storybook 5.0(SB5)于近日正式发布,这是目前为止最大的一个版本。新版本的内容包括:

  • 全新的开发者体验;

  • 带有主题的组件库;

  • 改进的前端插件架构;

  • 全新的Storybook网站。

Storybook的进展和未来

Storybook是目前最受欢迎的UI组件环境,它为各种视图层(如React、Vue、Angular、React Native、Ember)提供了结构化的UI开发、测试和文档。

采用情况:Storybook是Airbnb、Slack、Squarespace、Lyft和Dropbox等巨头公司的首选UI工具,而且在各个行业和开源项目中的采用还在继续增长,最近的每月npm下载量超过450万次。

蓬勃的社区:Storybook社区在Github上有600多个贡献者和34K个星标,从星标数量来看,Storybook已经进入了前40个JavaScript项目的行列。Storybook社区比以往任何时候都更强大。为了这个项目的未来,还成立了一个由高级维护人员组成的指导委员会。

专业级工具:在2018年,Storybook团队专注于构建Storybook平台,包括扩展视图层支持、插件的交叉兼容性,并与JavaScript工具一起演化。2019年,Storybook团队将通过以下方式改善开发者体验:

  • 提高用户反馈的优先级;

  • 为Storybook提供更多的配置方式;

  • 发布更多小版本,让平台变得更稳定。

Storybook 5.0新特性

SB5的核心是一个漂亮的新用户界面。具有讽刺意味的是,对于这样一个被广泛使用的UI开发工具,Storybook本身在设计方面还有很多需要改进的地方。Storybook的新设计是自项目开始以来的第一次重大调整。

\"\"

新的用户界面解决了自2016年以来用户反馈的问题,包括:

  • 新设计的亮色和暗色主题;

  • 画布工具栏,可以方便地访问插件;

  • 调整导航栏,菜单更加直观;

  • 重新设计插件面板,可以使用按钮切换可见性和方向;

  • 用户可配的键盘快捷键;

  • 新的URL结构,消除了长串的查询参数。

这些升级改进了整个Storybook生态系统的视图层、插件和集成。

重用Storybook组件

Storybook本身就是用Storybook构建的。Storybook团队正在发布@storybook/components库,用来加快开发速度,促进最佳实践。这意味着插件开发人员可以更快地构建与Storybook UI一致的插件。

\"\"

Storybook组件使用React和Emotion实现。这个库包含了Storybook界面的所有构建块,可用于开发桌面和移动UI,并可通过Emotion灵活的主题API进行定制开发。

这个库实现了以下几个的目标:

  • 加快开发:记录常见的用例、自动化可视化测试,并促进代码重用;

  • 促进最佳实践:Storybook团队的长期目标是让这个库成为使用Storybook构建设计系统的风向标。虽然还有很长的路要走,但SB5是迈出的关键一步;

  • 改进工作流:SB5的很多改进来自构建Storybook组件库本身。

定制Storybook

Storybook还提供了一个新的前端架构,用于改进Storybook的定制化。Storybook一直都有提供插件和构建配置API,而现在SB5开始开启可配置的用户界面。

主题API

在Storybook中应用主题比以往任何时候都更容易、更一致、更美观。这可以通过新的主题API来实现,新版本的API对4.0版本的API进行了改进。

\"\"

Storybook提供了开箱即用的“亮色”和“暗色”主题。这些主题可以独立使用,可以作为主题定制化的起点。下面是一个简单的例子:

SB5的主题系统被抽象为一组变量,简化了开发人员的定制化工作,同时随着Storybook UI的演化,更容易保持向后兼容性。有关SB5中主题的更多信息,请参阅相关文档。

插件API

SB5包含了一个扩展的插件API,提供了两种将插件连接到UI的新方式:工具栏和选项卡。

工具栏:插件现在可以被添加UI到工具栏!这样用户就可以立即看到插件。视图、背景和可访问性插件都支持这个新特性。

选项卡:插件还可以向主面板添加新选项卡。Notes插件已经支持这个特性,稍后会有更多的集成。

\"\"

对于插件用户来说,SB5的安装和配置并没有发送变化。对新API感兴趣的插件作者可以参考Storybook的插件文档。

全新的Storybook网站

最新版SB5的最大亮点是Storybook的新网站。这个网站解释了Storybook诸多方面的好处——灵感来自社区的聚会、讨论、演示和博文。

\"\"

为什么要使用Storybook?

用户经常会问为什么要使用Storybook?Storybook有很多应用场景:组件资源管理器、样式指南、UI文档、playground、沙箱、workshop和库。

下面的这个视频可以很好地回答这个问题。在不到两分钟的时间里,你将了解到为什么独立组件开发对现代应用程序来说非常重要,以及Storybook如何帮助你实现这一点。

升级到Storybook 5.0

如果你在运行Storybook 4.x,那么升级到5.0就很简单。这里有一个5.0升级指南。

如果你在使用3.x,那么也可以参考一下4.0升级指南。

如果你是Storybook新手,可以看看Storybook教程。

如果你想直接开始使用Storybook,只需要30秒就可以将SB5添加到现有项目中:

cd my-projectnpx -p @storybook/cli sb inityarn storybook

英文原文

https://medium.com/storybookjs/storybook-5-0-db1d0f9c83b8

更多内容,请关注前端之巅。

\"\"

相关文章:

linux6直连存储挂载磁盘,CentOS7mount网络磁盘的详细步骤

在配置前一定先关闭防火墙systemctl disable firewalldsystemctl stop firewalldsystemctl mask firewalld一.修改iscsi客户端的用户名vi /etc/iscsi/initiatorname.iscsiInitiatorName iqn.************;【注:eg:iqn.2017-09.com.centos:cl…

如何将Java源代码文件的编码从GBK转为UTF-8?

有时候看到有意思的demo,在头痛导入项目的编码和workspace的编码不一样的时候 我试着将 笔记本打开一个类一个类的复制, demo的类比较少的时候 可以忍受,demo的类多的时候 除了靠之外 别无办法 今天再找仿ios样式demo的时候 实在受不了乱码&a…

电子书格式怎么在线转换为PDF格式

电子书格式怎么在线转换为PDF格式,现在很多朋友喜欢用PDF格式的电子书,因为其有纸质书的排版和格局,但实际生活中出现的最多的是TXT等格式的电子书,那如何将其进行转换成PDF格式的呢,下面就由小编来告诉大家转换的解决…

设计模式笔记(18)---迭代器模式(行为型)

Gof定义 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露该对象的内部表示。 动机 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访…

linux卸载mpfr,Red Hat Linux在安装gcc时遇到的问题汇总

找到了一个比较老的RedHatlinux,想要装上apachetomcat。由于是在虚拟机中运行,我想先装一个vmware-tools提高性能。但是安装的过程中我发现竟然找不到gcc。于是我就去网上(] http://www.linuxidc.com/Linux/2009-01/18242.htm 与 http://www.linuxidc.co…

【数据结构】某些难理解点

1 typedef char ListData;2 //表示以后可以用ListData来代替char类型3 4 typedef struct node{ //此处node,只在结构体中出现和使用5 ListData data;6 struct node *link;7 }ListNode; //表示将整个结构体命名为ListNode,也就是说…

利用jQuery实现用户名片小动画

我爱撸码,撸码使我感到快乐!大家好,我是Counter。下面给大家介绍利用jQuery实现的小动画,非常的简便,如果有原生js操作的话,那么就不止这么多行了。至于CSS,个人觉得,这边CSS布局也蛮…

Linux二进制导出配置文件,Go打包二进制文件的实现

背景众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。操作需求:打包部署到centos7笔者打包环境:mac os方法:进入main.go所在目录,输入如下命…

crud springmvc

实体类:Student.java Java代码 package demo.entity; public class Student { private int id; private String name; private String sex; private String address; public int getId() { r…

从 Flutter 的视频渲染到 App 落地经验

3月23日周六,由 RTC 开发者社区主办的 “RTC Dev Meetup 北京站”如约举行,超过100位求知若渴的开发者参加了活动。来自 LeanCloud、声网 Agora、阿里、美团点评的资深工程师,与他们共同分享了 Flutter 开发中的实践经验。 我们在这里回顾一下…

screen命令

原文链接 screen其实就是linux虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。 【终端操作】 (需要在物理shell中操作&a…

linux 565显示格式,RGB565转BMP格式 C语言程序

#include#include#include#include"rgb2bmp.h"int RGB2BMP(char *,int ,int ,FILE *);int main(int argc,char *argv[]){double num_tmp 0;FILE *p;/*************** input data ***********filename :RGB数据文件名称nWidth :所生成文件的水平像素n…

Spring Boot @ConfigurationProperties使用指导

1.简介 Spring Boot的一个非常有用的功能是外部化配置,并且可以轻松访问属性文件中定义的属性。 我们现在将详细地探索ConfigurationProperties注释。 2.设置 本文使用相当标准的设置。我们首先在我们的pom.xml中添加spring-boot-starter-parent作为父项&#xff1a…

UVA 10494 - If We Were a Child Again(高精度除法和取余)

题目链接:http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem1435 这个题做的好没状态。上几天刷的高精度都白刷了啊。。。首先代码除法和取余以前都做过,还要查看以前的代码,模板还…

python显示当前时间

import time time.strftime("%Y%m%d %X", time.localtime()) #当前时区 time.strftime("%Y%m%d %X", time.gmtime(time.time()))#0时区 下面是format字符串的解释: strftime(format[, tuple]) -> string 将指定的struct_time(默认为当前时间…

linux系统 插优盘安装xvidcap,linux下的视频录制软件xvidcap

1.xvidcap简介在linux如果我们想要进行视频录制,那么xvidcap是一个不错的选择。Xvidcap 是一个可将屏幕上的操作过程录制下来并保存为视频的小工具。对于需要制作产品演示和教学的朋友来说,这个屏幕录像机十分实用。Xvidcap 支持生成 avi、mpeg、asf、fl…

ASP.NET Cookie

最经在使用Cookie的过程中遇到了一些疑问,查阅参考MSDN,记录Cookie相关知识点 什么是Cookie Cookie是一小段文本信息,伴随着用于的请求和页面在Web服务器和浏览器之间传递,并将它存储在用户硬盘上的某个文件夹中。Cookie包含每次用户访问站点…

1111 评论

201406114205 陈嘉慧 http://www.cnblogs.com/hui1005039632/ 201406114219 林宇粲 http://www.cnblogs.com/zlcan/ 201406114220 蔡舜 http://www.cnblogs.com/caishun/ 201406114215 林志杰 http://www.cnblogs.com/15linzhijie/ 201406114252 王俊杰 http://www.cnblogs.c…

React 16.8.6 发布,构建用户界面的 JavaScript 库

React 16.8.6 已发布,该版本更新如下: React DOM 修复 useReducer() 中的问题(acdlite in #15124)修复 Safari DevTools 中的 iframe 警告(renanvalentin in #15099)若 contextType 设置为 Context.Consume…

linux禁止路由器,FCC 新规可能禁止在 WiFi 路由器安装 OpenWRT

FCC(美国联邦通讯委员会)的新规则可能会禁止在 WiFi 路由器安装 OpenWRT。OpenWrt 类似于 Buildroot 的路由器固件,为嵌入式设备所研发的 Linux 发行版。目前 OpenWrt 已支持多个平台(如 ARM、mips、x86 等),且提供了许多开源应用程序!许多便…

智销功能_Shiro权限框架

Shiro是什么? Spring security 重量级安全框架 Apache shiro 轻量级安全框架 Shiro是一个强大且易用的Java权限框架 四大基石 身份验证,授权,密码学,会话管理 /*** String algorithmName, Object source, Object salt, int hashIt…

ARM、FPGA和DSP的特点和区别是什么?(转)

发布时间:2009-5-8 14:25 发布者:ARM 关键词:DSP, ARM, FPGA, 特点 DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个…

unix to linux,UNIX to Linux 的关键问题都有哪些?

答:针对问题描述有一些不同的观点。1、第一个问题就是应用架构的改造问题,需要支持负载均衡模式。说明:这个不一定需要支持负载均衡模式,首先本身LINUXONE提供多分区架构,不需要改变原有应用系统的部署模式。而且负载均…

MongoDb 查询时常用方法

Query.All("name", "a", "b");//通过多个元素来匹配数组Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件Query.EQ("name", "a");//等于Query.Exist…

解决Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/

https://blog.csdn.net/quanqxj/article/details/79479943转载于:https://www.cnblogs.com/liuys635/p/10624068.html

从 StarCraft 2 Installer.exe 中提取种子文件

蛋疼的想在 Linux 下下载星际争霸,但是暴雪提供的是 exe 格式的文件,这其实就是个 BT 客户端,但是问题是怎么提取出里面的种子文件呢,经过一番 google 找到了答案。 直接用 Vi 或 Emacs 打开 exe 格式的文件,搜索“d8:…

linux下接口持续集成,部署jenkins持续集成工具

1、Linux安装配置jdk环境1.1、上传到 Linux 服务器;例如:上传至: cd /usr/local1.2、解压:rpm -ivh jdk-8u111-linux-x64.rpm1.3、环境变量配置cd /etc在etc下,找到 profile文件,增加如下如下配置&#xff…

iOS UILabel UITextView自适应文本,或文本大小自适应

//UILabel自适应文本的高度UILabel *label [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)];label.numberOfLines 0;label.lineBreakMode NSLineBreakByWordWrapping;label.text "是它吗?哈哈,太兴奋了。”12日,随着土…

(原)War3 脚本分析5-基础脚本资源

众所周知War3编辑器非常强大,这种强大不仅是因为其拥有诸如地形编辑器、开关编辑器、声音编辑器、物体编辑器、战役编辑器、AI编辑器、物体管理器、输入管理器等非常全面且易于使用的功能,更为重要的是在其基础上MOD爱好者通过很简单的操作即可实现各式各…

Mysql统计分组区间的人数和

统计各分数区间数据 现在要统计&#xff1a;<50、50-60、60-70、70-80、80-90、90-100、>100分数区间的人数&#xff1b;利用 INTERVAL 划出7个区间&#xff1b;再利用 elt 函数将7个区间分别返回一个列名&#xff0c;如下SQL&#xff1a; 123456789101112131415 mysql&g…