LINUX.ORG.RU

preact + htm: несколько экземпляров одного дочернего компонента.

 preact


0

1

Допустим у меня два компонента A и B, и A.render() = html`<${B}/><${B}/>`.

Вопрос: каков алгоритм привязки дочерних экземпляров компонент к возвращаемому html-ом virtual DOM?

В частности:

  1. Нарисовал пример и убедился, что при повторном вызове A.render(), используются ранее инстанциированные компоненты B. Даже если менять их атрибуты. Это позволяет предполагать, что в каждой компоненте кешируется список дочек как раз для такого случая.

  2. Но если очередной вызов A.render() вдруг вернёт одну дочернюю компоненту вместо двух (т.е. html`<${B}/>`), у меня всё равно выводит две компоненты, и componentWillUnmount() для второй компоненты не вызывается. И это смахивает на баг, отсюда и вопрос про алгоритм.

  3. Можно ли как-то явно (а не по индексу) привязать экземпляр к тегу? Конкретный юз-кейс: первый из двух – текущий, второй в состоянии «загружаюся я», и после завершения его загрузки я хочу их свопнуть: второй загруженный на место первого, а первый выкинуть до следующей загрузки. Пробовал подусунуть в h() первым аргументом экземпляр вместо имени класса – не пашет. С одной стороны, так и ожидалось, с другой – компонентная модель это ООП, а в ООП так работать с типами вместо экземпляров – моветон, антипаттерн и полная дичь.

★★★★★

Последнее исправление: dimgel (всего исправлений: 1)

Вы не можете создавать новые теги (preact)», так что тег react, но вопрос про preact

Раньше работал хак при редактированием темы.

theNamelessOne ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.