Перейти к основному содержимому

LazyLoad

Реализует отложенную загрузку компонентов Платформы Multi-D

Используется для ускорения загрузки страниц приложения на базе Платформы Multi-D.

Свойства

ИмяОписаниеТипЗначение по умолчаниюВозможные значения
CSSМассив строк-классов CSS-стилей компонентаarray
ColorЦвет панели загрузки из палитры RGBAstringblack
FallbackHeightВысота блока с индикатором загрузки; рекомендуемое значение равно высоте отображаемого компонентаstring
HiddenПризнак состояния компонента Скрытboolean
HintВсплывающая подсказка над компонентом, чаще используемая для подробного пояснения краткого текстаany
IdИдентификатор компонента для навигации к нему на HTML-страницеstring
LoaderSizeРазмер значка индикатора загрузкиenumDefaultDefault - 24px
Micro - 12px
Small - 18px
Large - 48px
ModeРежимы работы компонентаenumDefaultByOne - Отображение по одному компоненту, которые находятся в видимой области страницы
InfinityScrolling - Отображение страницы по достижению последнего компонента видимой области страницы без прокрутки
OnClickОбработчик события Clickundefined
OnKeyDownОбработчик события KeyDownundefined
OnKeyUpОбработчик события KeyUpundefined
OnMouseDownОбработчик события MouseDownundefined
OnMouseEnterОбработчик события MouseEnterundefined
OnMouseLeaveОбработчик события MouseLeaveundefined
OnMouseMoveОбработчик события MouseMoveundefined
OnMouseOutОбработчик события MouseOutundefined
OnMouseOverОбработчик события MouseOverundefined
OnMouseUpОбработчик события MouseUpundefined
OnPageChangeОбработчик события изменения страницы; возвращает номер страницыundefined
OnUnmountОбработчик события Unmountundefined
RootMarginСтрока с отступами для видимой области; синтаксис аналогичен CSS-свойству margin — '0px 0px 0px 0px' (top, right, bottom, left), либо значения типа '50px 100px' или '200px'string40px
ShowLoaderПризнак отображения индикатора загрузкиbooleanTrue
SlotМетка для динамического добавления другого компонента по его идентификаторуstring
StartsFromНомер страницы, с которого начинается отображение данныхnumber1
TimeoutВремя ожидания для отображения компонентов в видимой областиnumber5
ToНомер последней страницы списка элементов для отображенияnumber2
TooltipВсплывающая подсказка над компонентом, чаще используемая для пояснения назначения значкаany
TraceIdИдентификатор для отслеживания состояния компонента исходя из хронологической последовательности:
создание, отрисовка, обновление, удаление; используется для выполнения фрагмента кода по изменению состояния компонента
string
TrashholdПороговое значение, при котором будет вызван обработчик события OnPageChange; массив чисел от 0 до 1, либо набор значений, например [0, 0.25, 0.5, 1]array0
VisibleПризнак инверсии состояния компонента СкрытbooleanTrue

Примеры

JSX:

<Group Mode='ColumnWithScroll'>
<Accordion
ArrowPos="Right"
Mode="Default"
Value={true}
CSS={['mb-16']}
>
<Group Align="Start" VerticalAlign="Center">
<Text Value="ByOne" />
</Group>
<Group Mode='ColumnWithScroll' Height='70vh'>
<Repeater Value-var="byOne" ItemAlias="item">
<LazyLoad
Mode='ByOne'
Timeout={300}
LoaderSize='Large'
FallbackHeight='285px'
>
<Group
Mode='Column'
VerticalAlign='Space-between'
Height='285px'
>
<Text Max={2} Mode="Medium_32" Value-var="item.title" />
<Image Width="200px" Value-var="item.imageLink" />
<Separator Mode='Horizontal' />
</Group>
</LazyLoad>
</Repeater>
</Group>
</Accordion>
<Accordion
ArrowPos="Right"
Mode="Default"
Value={true}
CSS={['mb-16']}
>
<Group Align="Start" VerticalAlign="Center">
<Text Value="InfinityScrolling" />
</Group>
<Group Mode='ColumnWithScroll' Height='70vh'>
<LazyLoad
Mode='InfinityScrolling'
LoaderSize='Large'
RootMargin='0px'
FallbackHeight='285px'
StartsFrom={1}
To={6}
OnPageChange={ InfinityScrolling => {
const data = getValue('data');
const currentPage = getEvent().page;
if ( currentPage === 1 ) {
currentData = InfinityScrolling[currentPage]
} else {
currentData = [
...data,
...InfinityScrolling[currentPage + 1],
]
}
setState({ data: currentData, currentPage });
}}
>
<Repeater Value-var='data' ItemAlias="item">
<Group
Mode='Column'
VerticalAlign='Space-between'
Height='auto'
>
<Text Max={2} Mode="Medium_32" Value-var="item.title" />
<Image Width="200px" Value-var="item.imageLink" />
<Separator Mode='Horizontal' />
</Group>
</Repeater>
</LazyLoad>
</Group>
</Accordion>
</Group>