Size: a a a

Next.js — русскоговорящее сообщество

2020 July 07

EM

Eugene M in Next.js — русскоговорящее сообщество
в любой очередности
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
я не говорю что это не реализуему, я говорю что есть особенность и нужно учитывать ее
источник

e

eeeMan in Next.js — русскоговорящее сообщество
Eugene M
дид маунт !== имедж онлад и наоборот
картинку можно засунуть в свой компонент у которого есть дидмаунт
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
нужно в дид маунт смотреть ready state
источник

K

Khotam in Next.js — русскоговорящее сообщество
на данный момент, я нашел эту статью, я думаю, что это должно сработать
источник

K

Khotam in Next.js — русскоговорящее сообщество
ой, onLoad здесь
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
ну ты просто адаптируй
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
чтоб онлоад вешать только если картинка не загружена
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
а если загружена то сразу нужны класс
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
вообще это ударит по перформансу картинок, жто все начнет работать только после гидрации, к этому моменту юзер уже мог смотреть на загруженные картинки
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
если конечно цель оптимищировать под мобилки то может нужно заморочится
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
инлайни пикчи 🙃
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
function usePlaceholder() {
 const [isPlaceholderImgLoaded, setPlaceholderImgLoadingStatus] = useState(
   false
 );
 const setPlaceholderImgLoaded = useCallback(() => {
   setPlaceholderImgLoadingStatus(true);
 }, [setPlaceholderImgLoadingStatus]);
 const placeholderRef = useRef();

 useEffect(() => {
   if (placeholderRef.current && placeholderRef.current.complete) {
     setPlaceholderImgLoaded();
   }
 });

 return { isPlaceholderImgLoaded, setPlaceholderImgLoaded, placeholderRef };
}
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
вот такой код для проверки загрузки
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
+ onLoad
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
<img ref={placeholderRef} onLoad={setPlaceholderImgLoaded}
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
что-то одно сработает
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Eugene M
function usePlaceholder() {
 const [isPlaceholderImgLoaded, setPlaceholderImgLoadingStatus] = useState(
   false
 );
 const setPlaceholderImgLoaded = useCallback(() => {
   setPlaceholderImgLoadingStatus(true);
 }, [setPlaceholderImgLoadingStatus]);
 const placeholderRef = useRef();

 useEffect(() => {
   if (placeholderRef.current && placeholderRef.current.complete) {
     setPlaceholderImgLoaded();
   }
 });

 return { isPlaceholderImgLoaded, setPlaceholderImgLoaded, placeholderRef };
}
ох бля
источник

K

Khotam in Next.js — русскоговорящее сообщество
Eugene M
function usePlaceholder() {
 const [isPlaceholderImgLoaded, setPlaceholderImgLoadingStatus] = useState(
   false
 );
 const setPlaceholderImgLoaded = useCallback(() => {
   setPlaceholderImgLoadingStatus(true);
 }, [setPlaceholderImgLoadingStatus]);
 const placeholderRef = useRef();

 useEffect(() => {
   if (placeholderRef.current && placeholderRef.current.complete) {
     setPlaceholderImgLoaded();
   }
 });

 return { isPlaceholderImgLoaded, setPlaceholderImgLoaded, placeholderRef };
}
spasibo bolshoe
источник

e

eeeMan in Next.js — русскоговорящее сообщество
так можно тупо проверять, если дидмаунт сработал знач уже всё ок и можно делать запрос картинки, до дидмаунта вместо картинки отдавать пустой квадрат, после дидмаунта картинку, это гарантированно выполнится уже в готовом доме и события онЛоад будет работать
источник