• 从组件文档引发的惨案 ◤1◢


    公司目前有很多后台管理系统,目前代码量都越来越大,在开发的过程中,我们也秉承着提取公共组件,通过复用组件来减少开发工作量,随着公共组件数量的增加,新同事想要快速了解公共组件如何使用,需要到具体的业务页面中去看,这样子学习组件的成本太大,于是就想给每个组件提供一个文档,来解释组件如何使用。

    恰巧之前有同事分享过storybook,听闻效果不错,就准备尝试一下~~

    storybook

    storybook,人如其名,它将实例化的组件称之为story,不同组件的不同实例化组成了一本 ◤故事书◢。每个组件可以有多个故事,故事之间不同一般是因为入参不同,幻化出的组件不同功能。厉害的它还支持很多插件,来扩展这本故事书。

    storybook界面

    React项目集成storybook

    在现有的项目集成storybook,最大的问题是需要将已有的webpack配置和storybook自己的webpack配置集成到一起。

    安装storybook

    有两种方式(手动和自动),具体可以参考官方文档

    我是采用的手动的方式,觉得比较可控一些。

    npm install @storybook/react --save-dev

    增加配置文件

    在根目录创建文件夹.storybook,然后创建config.js,这个配置文件主要是为了告诉storybook哪些文件是story文件。

    import { configure } from '@storybook/react';
    // 查找src目录下后缀是.stories.js的文件,就是story
    configure(require.context('../src', true, /.stories.js$/), module);

    合并webpack.config.js

    storybook要加载你写的组件,需要依赖你的webpack.config.js来编译代码,参考具体文档

    因为我们的项目是使用的ant.desgin pro搭建的,查找了一下居然有人解决过这个问题,就参考了github issues中的解决方法。

    写一个story

    story其实就是引入组件,并实例化组件的过程,具体的代码如下。

    import React from 'react';
    import {storiesOf} from '@storybook/react';
    import { Button } from '@storybook/react/demo'; 
    
    const stories = storiesOf('Button', module);
    
    stories.add(
        'withText',
        () => {
            return <Button>Hello Button</Button>;
        }
    ).add(
        'withEmoji',() => {
            return <Button><span role="img" aria-label="so cool">
  • 相关阅读:
    Django对静态文件的处理——部署阶段
    使用Django来处理对于静态文件的请求
    Django1.7如何配置静态资源访问
    Spring WebSocket中403错误解决
    FastJSON JSONObject 字段排序 Feature.OrderedField
    国际化(i18n) 各国语言缩写
    【转】java.io.Closeable接口
    【转】spring bean 卸载
    This content should also be served over HTTPS
    Failed to close the ServletOutputStream connection cleanly, Broken pipe
  • 原文地址:https://www.cnblogs.com/augustuss/p/13535262.html
Copyright © 2020-2023  润新知