跳转到内容

常见问题

SD Design Vue 组件库中使用了 受控 的概念,正如其名,组件的显示状态将始终与传入值相同。我们推荐通过受控模式来使用输入组件。

这时可以通过 双向绑定(v-model) 或者 change 事件来修改 model-value 的值,来保证组件内部与外部的值相同。

在受控模式中,如果希望控制显示的值,可以使用 change 事件进行处理。

如果我们不希望控制组件的值,可以使用非受控模式,此时组件的值将维护在组件内部,可以通过 default-value 来设置初始值。非受控模式下可以通过 change 事件来获取组件的值。

特别注意:default-* 类属性用来设置非受控模式下的初始值,不会影响后续的状态。此值与受控值同时使用时,受控值优先生效。

下拉菜单默认会跟随 window 滚动条的变化更新位置,如果将包含下拉菜单的组件放置在一个可滚动的容器中,会出现容器滚动时下拉菜单没有更新位置的问题,此时可以通过组件内部的 trigger 配置,将 updateAtScroll 设置为 true 开启滚动更新的支持。

如果项目内此场景较多,可以通过 ConfigProvider 组件全局开启此属性。

支持设置虚拟列表的组件包括 ListSelectTree,以及复用这些能力的 AutoCompleteCascaderTreeSelect。当前版本的虚拟列表能力已经切换到 vue-virtual-scroller,并继续使用组件库内置 ScrollbarTable 本次不在新语义范围内。

虚拟列表元素的渲染分为 固定高度动态高度 两种情况:固定高度请使用 itemSize,动态高度请使用 minItemSize。完整迁移说明见 虚拟列表迁移

参数名描述类型默认值版本
keyField用于提取每项唯一键,支持字段名或函数string | ((item, index) => string | number)'key'
itemSize固定高度模式的 item 高度,传入后使用 RecycleScrollernumber | string | ((item, index) => number)-
minItemSize动态高度模式的最小 item 高度;未传 itemSize 时使用 DynamicScrollernumber | string32
buffer额外渲染缓冲区number200