ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

小技巧——故事书播放功能

2022-09-12 09:03:53  阅读:256  来源: 互联网

标签:插件 技巧 storybook 故事书 Storybook 组件 播放 交互


小技巧——故事书播放功能

故事书 是许多开发人员将其用作他们正在创建的组件的实验室环境的首选工具。 Storybook 渲染组件,然后与它们交互,更改它们的道具并查看更改的结果。

但有时您可能想在组件渲染后模拟用户交互或使用一些公开的组件 API。你怎么能那样做?

在这篇简短的文章中,您将熟悉 Storybook 函数,它使您能够在组件渲染后挂钩操作。

播放功能

故事书故事可以帮助开发人员在实验室环境中测试他们的组件。当您想模拟与组件的交互或使用从组件公开的功能时,您需要挂钩 函数到您的模板实例。

function 是一个钩子,使您能够在组件渲染后与它进行交互。在使用它之前,您需要确保 Storybook 的 插件交互 已安装。您可能要安装的另一个软件包是 @storybook/测试库 ,它可以帮助您使用 Storybook 公开的 DOM。如果未安装软件包,请在项目根文件夹的命令行中运行以下命令:

 npm install — save-dev @storybook/addon-interactions @storybook/testing-library

安装软件包后,您应该确保 插件交互 插件被添加到插件列表中 .storybook/main.js 文件:

 模块.exports = {  
 故事:[],  
 插件:[  
    **'@storybook/插件交互'**  
 ]  
 };

现在一切就绪,让我们看看如何使用 故事文件中的功能。

发挥作用

函数被添加到 Storybook 模板的实例中,例如添加故事 参数

**进口** { ** _屏幕_** } **来自'@storybook/testing-library'** ; ... // 一些故事定义 **导出常量 _默认_** = 模板.bind({});  
 ** _默认_** .play = **异步** () => {  
  **_屏幕_** . _getByTestId_ ( **“someElementTestId”** )。节目( **《你好故事书》** );  
 }

在这个小例子中需要注意的几点:

  • Play 可以有异步交互,因此我使用 异步 关键词。在此示例中,没有等待但可能有(例如等待模拟用户交互)。
  • 我用 屏幕 对象来自 @storybook/测试库 通过它的测试 id 抓取一个元素。您应该确保该元素确实有一个测试 id,就像使用的那个一样,否则您会得到一个错误。
  • 在从 DOM 中查询到元素后,一旦我获得了元素,我就可以与它进行交互。在此示例中,我调用了一个公开的 API 函数,称为 节目 .

这个例子很简单,你绝对可以做一些复杂的事情,比如使用测试库 API 运行用户事件(点击、打字等),撰写多个故事等等。

概括

在帖子中,您了解了 Storybook 中的功能。这 function 是一个非常方便的钩子,使您能够在组件在 Storybook 预览部分中呈现后“播放”用户交互或组件公开的 API 函数。

如果您有任何疑问,请随时在评论部分写下它们。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/30322/41571208

标签:插件,技巧,storybook,故事书,Storybook,组件,播放,交互
来源: https://www.cnblogs.com/amboke/p/16685444.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有