描述bug
当在“文档”部分更改属性时,整个组件都会重绘。
重现
重现此行为的步骤:
git clone https://github.com/schoonc/test-storybook-vue-docs-render
npm i
npm run storybook
- 更改“画布”部分中的属性。我们可以看到元素的颜色平滑地变化(storybook仅更改元素的类)。
- 更改“文档”部分中的属性。我们看到元素的颜色立即发生变化(storybook完全重绘了元素)。
预期行为
组件不应完全重绘。
截图
代码片段
package.json中的依赖项:
"devDependencies": {
"@babel/core": "^7.11.6",
"@storybook/addon-actions": "^6.0.25",
"@storybook/addon-essentials": "^6.0.25",
"@storybook/addon-links": "^6.0.25",
"@storybook/vue": "^6.0.25",
"babel-loader": "^8.1.0",
"react-is": "^16.13.1"
},
"dependencies": {
"vue": "^2.6.12",
"vue-loader": "^15.9.3",
"vue-template-compiler": "^2.6.12"
},
.storybook/main.js:
module.exports = {
"stories": [
"../stories/**/*.stories.js"
],
"addons": [
"@storybook/addon-essentials"
]
}
stories/testdiv.css:
.testdiv {
background: blue;
transition: all 1s;
}
.testdiv-red {
background: red;
}
stories/Testdiv.stories.js:
import Testdiv from './Testdiv.vue';
export default {
title: 'testdiv',
component: Testdiv,
};
export const Default = (args, { argTypes }) => ({
props: Object.keys(argTypes),
components: { Testdiv },
template: '<testdiv v-bind="$props" />',
})
stories/Testdiv.vue:
<template>
<div class="testdiv" :class="{'testdiv-red': red}">TEST</div>
</template>
<script>
import './testdiv.css';
export default {
name: 'testdiv',
props: {
red: Boolean
},
};
</script>
系统
Environment Info:
System:
OS: Linux 5.4 Ubuntu 20.04.1 LTS (Focal Fossa)
CPU: (8) x64 AMD Ryzen 5 3550H with Radeon Vega Mobile Gfx
Binaries:
Node: 12.18.4 - /usr/bin/node
Yarn: 1.22.5 - /usr/bin/yarn
npm: 6.14.6 - /usr/bin/npm
Browsers:
Chrome: 84.0.4147.125
Firefox: 81.0
了解这种行为的原因会很有趣。如果从技术上讲这是合理的(例如,目前技术上难以实现),那么在文档中描述这种行为将是很酷的。
8条答案
按热度按时间yx2lnoni1#
大家好!最近似乎没有太多关于这个问题的进展。如果还有问题、评论或错误,请随时继续讨论。遗憾的是,我们没有时间处理每一个问题。我们始终欢迎贡献,所以如果你想帮忙,请发送一个pull request。30天后未活跃的问题将被关闭。谢谢!
envsm3lx2#
在我这边,当在文档页面的ArgsTable中更改一个属性后,画布需要大约5秒钟才能重新渲染。
zxlwwiss3#
如果页面上有12个故事,例如我的情况,只需一个故事,即使在开发模式下,重新渲染也是瞬间完成的。
cvxl0en24#
@as-zlynn-philipps 这应该会有很大帮助 #14002
你能升级到测试版并告诉我你看到了什么吗?
pb3skfrl5#
感谢shilman!这次测试并计数。似乎在开发模式下,每次属性更改时需要1-11秒重新渲染,并且有几个故事。我无法分辨不同的延迟时间有任何规律或原因。
cu6pst1q6#
我正在经历原始问题。这与延迟无关,只是使storybook在某些组件上无法提供帮助。
例如,一个使用css过渡来实现状态变化的组件无法在storybook中进行测试,因为当属性发生变化时,它会被重绘。重绘首先将所有内容重置为默认值,然后应用新的属性值,因此在应该有过渡的地方出现了跳跃。
oyxsuwqo7#
你好,有任何更新吗?
kmbjn2e38#
在6.5.10版本中仍然可以看到这个。