169 похожих чатов

Всем привет. Такой вопрос, я пытаюсь динамически загружать иконки в

component is таким образом, однако если пропс меняется динамически - иконка не меняется и компутед не отрабатывает на изменение пропса. Почему? Просто через () => import() делать ругается vite, а в проде вообще так свг не тянет

7 ответов

14 просмотров

1. не нужно класть glob в ref, он резолвится во время билда и больше не меняется 2. потому что ты юзаешь пропс не внутри computed, а внутри возвращаемой функции, лучше это переписать на вотчер с явной зависимостью в виде props.name, тогда все будет работать, как и ожидаешь

Виталик- Автор вопроса
Artyom Tuchkov
1. не нужно класть glob в ref, он резолвится во вр...

Спасибо. Пункт 1 поправлю, абсолютно верное замечание. По пункту 2 сам дошел до этого, да. Работает ожидаемо. Однако очень бесит что иконки как бы "дергаются" при изменении пропса. Как будто пропадают, освобождают место в контейнере и потом появляются

Виталик
Спасибо. Пункт 1 поправлю, абсолютно верное замеча...

смотря как ты их обновляешь, можно сначала асинхронно загрузить компонент и засунуть уже готовый в переменную, тогда ничего дергаться не будет и на время загрузки просто будет отображаться старая иконка

Виталик- Автор вопроса
Artyom Tuchkov
смотря как ты их обновляешь, можно сначала асинхро...

не очень понял если честно, что именно имеется ввиду. Обернуть defuneAsyncComponent в async await? потому что сам по себе defineAsyncComponent Promise то не возвращает

Виталик- Автор вопроса
Artyom Tuchkov
смотря как ты их обновляешь, можно сначала асинхро...

при такой реализации дерганье остается, по крайней мере

Виталик
при такой реализации дерганье остается, по крайней...

если ты используешь defineAsyncComponent, то он начнет подгружать иконку уже после смены компонента, отсюда и дерганье нужно либо ему фоллбэк задавать на какой-нибудь спиннер https://vuejs.org/guide/components/async.html#loading-and-error-states, либо просто не использовать его и ждать промис самостоятельно, а потом пихать готовый компонент в переменную, тогда она обновится сразу же

Виталик- Автор вопроса
Artyom Tuchkov
если ты используешь defineAsyncComponent, то он на...

ура, вот конечный код компонента. по итогу компонент нельзя класть в реф, его надо класть в shallowRef, чтобы избежать траблов с перформансом чтобы пути резолвились правильно и на проде и локально юза/ витовский glob такая реализация без варнингов и дерганий динамически меняет и загружает свг еще раз спасибо!

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта