storybook 用react写组件

2023-10-10 00:40
文章标签 react 组件 storybook

本文主要是介绍storybook 用react写组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

storybook 用react写组件

笔者也是最近两天才开始接触的React和storybook,初步学习了组件部分的知识。在学习的时候也查阅过不少文章,对新手来说,有些确实看得不太懂,所以写下这篇文章。
继上一篇文章简单使用React写组件放到storybook中,现在要讲一下如何自己创建组件并放在storybook中,可能语言表达不是很精确,请见谅。

  1. 在项目中的src文件夹下新建一个components文件夹,用来存放自己写的组件文件,此处照书上敲了个登录组件,取名为login.js。
import React from 'react'export class Login extends React.Component{     //export提供一个对外接口,方便被其他部分引用constructor(props){super(props);this.login=this.login.bind(this);this.check=this.check.bind(this);this.state={userName:"admin",password:"admin"}}login(){if(this.refs.user.value===this.state.userName&&this.refs.pwd.value===this.state.password)alert("登陆成功");elsealert("登陆失败");}check(){if(this.refs.user.value.length>10)alert("超出10个字符,请重新输入");}render(){var loginStyle={width:400,height:250,background:"#FFF",margin:"200px auto",position:"relative"};var hStyle={position:"absolute",left:95,top:-40,padding:0,margin:50};var pStyle={textAlign:"center"};var userStyle={width:200,height:30,border:"solid #ccc 1px",borderRadius:3,paddingLeft:32,marginTop:50,};var pwdStyle={width:200,height:30,border:"solid #ccc 1px",borderRadius:3,paddingLeft:32,marginTop:5,};var buttonStyle={width:232,height:30,background:"#E9E9E9",border:"solid #ccc 1px",borderRadius:3,textAlign:"center"};return(<div style={loginStyle}><h1 style={hStyle}>登录界面</h1><div><p style={pStyle}><input type="text" style={userStyle} placeholder="用户名" ref="user" onChange={this.check}/></p><p style={pStyle}><input type="password" style={pwdStyle} placeholder="密码" ref="pwd"/></p><p style={pStyle}><button style={buttonStyle} onClick={this.login}>登录</button></p></div></div>)}
}
  1. 上一篇文章中新建了一个stories文件夹,里面有一个index.js文件,在里面引入这个登录组件
import { Login } from '../src/components/login';    //这一句是引入我们编写的组件
storiesOf('Login',module).add('login',()=>(<Login />));
  1. 大功告成,接下来npm run storybook就可以看到效果了
    在这里插入图片描述

在这里要说一下第二步引入组件的时候,如果是这么写的:

storiesOf('Button', module).add('with text', () => (  // 一个 add 表示添加一个 story<Button>Hello Button</Button>)).add('with some emoji', () => (  // 这里是另一个 story<Button><span role="img" aria-label="so cool">😀 😎 👍 💯</span></Button>))
storiesOf('Login',module).add('login',()=>(<Login />));

那么效果就是这样子的:
在这里插入图片描述

如果是这么写的:

storiesOf('Button', module).add('with text', () => (  // 一个 add 表示添加一个 story<Button>Hello Button</Button>)).add('with some emoji', () => (  // 这里是另一个 story<Button><span role="img" aria-label="so cool">😀 😎 👍 💯</span></Button>)).add('login',()=>(<Login />));

效果就是这样子的:
在这里插入图片描述
看出两者的区别了吗?

这篇关于storybook 用react写组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176714

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除