在storybook中使用antd
栏目: JavaScript · 发布时间: 6年前
内容简介:最近一个 react 的项目有用到了 antd 这个 ui 库。这里作个笔记记录一下如何在 storybook 中显示 antd 的组件。项目是使用这里创建了一个
最近一个 react 的项目有用到了 antd 这个 ui 库。这里作个笔记记录一下如何在 storybook 中显示 antd 的组件。
项目是使用 create-react-app
创建的,项目目录结构如下:
├── .storybook/ ├── README.md ├── antd-theme.js ├── node_modules ├── package.json ├── public └── src ├── App.js ├── components │ ├── button.js │ └── button.stories.js ├── index.js └── registerServiceWorker.js
这里创建了一个 button
组件,内容如下:
// src/components/button.js import React, { Component, Fragment } from 'react'; import { Button } from 'antd'; class ButtonGhostextends Component{ render() { return ( <Fragment> <h3 className="ex-title">Ghost Button</h3> <div style={{ background: 'rgb(47, 45, 165)', padding: '26px 16px 16px' }}> <Button type="primary">Primary</Button> <Button className="ml20" ghost>Default</Button> <Button className="ml20" type="dashed" ghost>Dashed</Button> <Button className="ml20" type="danger" ghost>danger</Button> </div> </Fragment> ); } } export default ButtonGhost;
对应的 storybook 案例如下:
// src/components/button.stories.js import React from 'react'; import { storiesOf } from '@storybook/react'; import Button from './button'; storiesOf('General', module) .add('Button', () => <Button />)
然后 storybook 配置如下:
// .storybook/config.js import React from 'react' import { configure } from '@storybook/react' import { ThemeProvider } from 'styled-components' const req = require.context('../src/components', true, /\.stories\.js$/) function loadStories(){ req.keys().forEach((filename) => req(filename)) } configure(loadStories, module)
然后运行 storybook : start-storybook -p 6006 -c .storybook
,效果如下:
这是由于 antd 的 css 没有加载,因此所有按钮的样式都没有。
参考 https://ant.design/docs/react/use-with-create-react-app-cn 的说明,修改 babel 和 webpack 的配置。
参考 https://storybook.js.org/configurations/custom-webpack-config 的说明,修改 storybook 的 webpack 配置。
创建文件 .storybook/.babelrc
:
{ "presets": [ [ "env", { "modules": false, "targets": { "browsers": [ ">1%", "last 4 versions", "Firefox ESR", "not ie < 11" ] } } ], "react", "stage-3" ], "plugins": [ [ "import", { "libraryName": "antd", "style": true } ] ] }
创建文件 .storybook/webpack.config.js
:
module.exports = { module: { rules: [ { test: /\.less$/, use: [{ loader: "style-loader" }, { loader: "css-loader" }, { loader: "less-loader", options: { //modifyVars: antdTheme, // 如果要自定义主题样式 javascriptEnabled: true } }] } ] } };
然后在 .storybook/config.js
文件添加 import 'antd/dist/antd.less';
。
最后的效果如下:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ActionScript 3.0 Cookbook
Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50
Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!