zoukankan      html  css  js  c++  java
  • 从组件文档引发的惨案 ◤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">
  • 相关阅读:
    Less学习笔记
    如何在网页启动Windows服务
    让VS2010记住TFS的登陆用户名和密码
    调式WP程序报0x80131500错误的解决办法
    FizzBuzzWhizz是算法题吗?我从设计的角度去解决的。
    基于Roslyn的远程任务平台
    优雅就一个字——设计模式之数据上传接口
    关于反射优化的疑问,单次调用时直接反射要快于委托调用反射?
    用VC++11中编译libthrift项目
    grunt初体验
  • 原文地址:https://www.cnblogs.com/augustuss/p/13535262.html
Copyright © 2011-2022 走看看