React Native 的故事书

react native 的故事书

专家您好,我们都在应用程序中使用可重用组件,或者我们开发了在多个地方经常使用的自定义组件,并将逻辑分开,因此每当我们更改业务逻辑时,它都会在使用它的任何地方反映出来。如果我说向我展示您开发的组件,您需要在一个组件中导入/实现它并运行应用程序,会发生什么,对吗?有什么方法可以让我在一个地方看到所有可重用组件,我可以使用它,更改各种道具并验证它?是的,它就在那里。

什么是故事书?

storybook 允许开发人员编写故事(自定义组件)、运行故事、使用各种属性、验证它,而无需运行实际应用程序,也无需导入任何组件。 storybook 让开发人员的生活变得更加简单,开发人员可以从一个地方使用所有 story(自定义组件)——这就是 storybook。 storybook 与最流行的 javascript ui 框架(如 react、react native、angular、vue)集成,并支持服务器渲染组件框架(如 ruby on rails)。

什么是故事?

story 捕获 ui 组件的渲染状态。开发人员可以为每个组件编写多个故事。故事以组件故事格式 (csf) 编写,这是一种基于 es6 模块的标准,用于编写组件。

故事书特点——

独立组件开发

提供强大的 ui

增强您工作流程的插件

一致的用户体验

单元测试组件

共享和重用组件

安装 —

从 react native 应用程序的根目录中执行此命令:

npx -p @storybook/cli sb init — 输入react_native

系统会提示您询问是否要安装@storybook/react-native-server,您现在可以安全地选择不安装它,因为您可以稍后添加它,而且这不是必需的。

运行故事书 —

# starts storybook in development modenpm run storybook

登录后复制

写故事——

创建任务组件

// components/task.jsimport * as react from 'react';import { textinput, safeareaview } from 'react-native';import { styles } from '../constants/globalstyles';export default function task({ task: { id, title, state }, onarchivetask, onpintask }) {  return (                );}

登录后复制

创建任务故事

// components/task.stories.jsimport * as react from 'react';import { view } from 'react-native';import { styles } from '../constants/globalstyles';import { storiesof } from '@storybook/react-native';import { action } from '@storybook/addon-actions';import task from './task';export const task = {  id: '1',  title: 'test task',  state: 'task_inbox',  updatedat: new date(2018, 0, 1, 9, 0),};export const actions = {  onpintask: action('onpintask'),  onarchivetask: action('onarchivetask'),};storiesof('task', module)  .adddecorator(story => {story()})  .add('default', () => )  .add('pinned', () => )  .add('archived', () => <task task={{ ...task, state: 'task_archived' }}

登录后复制

配置

// storybook/index.jsimport { getstorybookui, configure } from '@storybook/react-native';import './rn-addons';// import storiesconfigure(() => {  require('../components/task.stories.js');}, module);const storybookuiroot = getstorybookui({  asyncstorage: null,});export default storybookuiroot;

登录后复制

渲染全部 |具体故事

import { getStorybookUI, configure } from '@storybook/react-native';import { name as appName } from './app.json';import { AppRegistry } from 'react-native';configure(() => {  require('./storybook/stories/Button/Button.stories.js'); // render all stories require(‘./storybook/stories’) - which contain all your stories}, module);const StorybookUIRoot = getStorybookUI({});AppRegistry.registerComponent(appName, () => StorybookUIRoot);

登录后复制

附加组件 —

旋钮 —
npm i — 保存@storybook/addon-ondevice-knobs
允许开发者实时调整组件 props。

行动 —
npm i — 保存@storybook/addon-ondevice-actions
开发人员可以使用将在操作选项卡中记录信息的操作来验证 onpress 调用。

笔记 —
npm i — 保存@storybook/addon-ondevice-notes
允许开发者在您的故事中添加一些 markdown 以帮助记录其使用情况。

背景 —
npm i — 保存@storybook/addon-ondevice-backgrounds
允许开发人员更改故事书的背景,以将组件的外观与不同背景进行比较。

感谢您阅读文章!

以上就是React Native 的故事书的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2591419.html

(0)
上一篇 2025年3月6日 16:50:06
下一篇 2025年2月27日 16:18:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何开始 Web 开发

    介绍 Web 开发是当今最受欢迎的职业之一,对于那些对 前端(用户所看到的内容)和 后端(服务器逻辑)感兴趣的人来说)。如果您刚刚起步,想知道从哪里开始或者作为开发者可以赚多少钱,本指南将为您提供清晰的路径和入门资源。 什么是网页开发? 网…

    2025年3月6日
    200
  • 全栈开发演变:趋势和最佳实践

    在过去的十年里,全栈开发发生了很大的变化。从对能够处理后端和前端任务的开发人员的不同寻常的责任到成为行业标准,这确实是一段奇怪的旅程。 如今,成为一名全栈开发人员不仅仅意味着兼顾应用程序的两个方面。它涉及掌握一系列技术并通过遵循最佳实践来适…

    2025年3月6日
    200
  • 现在编程的主流语言有哪些

    当前编程语言的主流趋势包括通用语言(Python、Java、C#、JavaScript)、Web开发(PHP、Node.js、Ruby on Rails)、移动开发(Swift、Kotlin)和其它(Rust、Go、Scala),它们在各自…

    2025年3月6日
    200
  • Web 开发的演变:从静态 HTML 到动态 Web 应用程序

    自互联网诞生之初以来,Web 开发已经取得了长足的进步。最初简单的静态 HTML 页面已转变为由现代技术支持的动态、交互式和身临其境的体验。这一旅程不仅反映了技术的进步,还反映了我们与网络交互方式的转变。 静态网页时代网络的早期是由 20 …

    2025年3月6日
    200
  • Choosing Your Tech Stack: A Developer&#s Journey

    当我第一次踏上编码之旅时,我对可用的编程语言和技术堆栈的数量感到不知所措。感觉就像走进一个广阔的图书馆,每本书都承诺一次不同的冒险,但我不知道从哪里开始。 最初的困惑 作为编码世界的新手,我对不同语言的潜力、各种技术堆栈以及与不同编码相关工…

    2025年3月6日
    200
  • 如何为医疗保健行业开发 SaaS 应用程序

    为医疗保健行业开发 SaaS(软件即服务)应用程序需要采取细致的方法来满足行业的特定需求,同时遵守严格的法规。这是分步指南: 1.了解市场并明确目的 识别医疗保健中的痛点,例如患者管理、计费、远程医疗或数据分析。定义应用程序的目标受众:医院…

    2025年3月6日
    200
  • 发布了一个用于 JS/TS 异步进程同步执行的库

    我发布了一个名为sync-actions 的库,它允许异步进程在 javascript/typescript 中同步执行。特别是在 typescript 中,您可以以类型安全的方式调用定义的函数。它适用于您想要在您不希望(或不能)标记为异步…

    2025年3月6日
    200
  • mise 与 asdf 用于 JavaScript 项目环境管理

    asdf 与 mise:多版本编程语言和环境管理工具对比 asdf 和 mise 都是旨在简化多语言开发中工具版本管理的优秀工具,它们通过简化不同版本工具间的切换来解决多语言开发的常见难题。两者都支持多种编程语言和框架,但实现方式有所不同,…

    2025年3月6日
    200
  • Docker 的开发:第 1 集

    本系列教程将探讨在软件开发中使用 Docker 的优势和实用技巧,重点关注 Ruby on Rails 和 React 项目。 我们不会讲解 Docker 的基础概念,建议您先阅读官方文档,再继续阅读本系列文章。 开发动机 以下经验或许能帮…

    2025年3月6日
    200
  • 针对表单对象的案例

    本文基于 Ruby on Rails 示例,但核心概念适用于其他语言和框架。 一、表单对象:定义与目的 表单对象究竟是什么?其设计初衷是什么? 根据参考文章及实践经验,表单对象的定义和用途多种多样,概括如下: 是什么?做什么? 一个普通的 …

    2025年3月6日
    200

发表回复

登录后才能评论