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

相关文章

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB