Курс React и Redux. 16. React.lazy(). Запросы через Promise.all(). Список фильмов

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 20

  • @benchik100
    @benchik100 7 месяцев назад

    для того что бы четко видеть loader, в хроме в инструментах разработчика в разделе network можно выбрать Slow 3G

  • @ИгорьНово
    @ИгорьНово 2 года назад +1

    Спасибо, идем дальше!!+)

  • @МаксимНырков-у6г
    @МаксимНырков-у6г 3 года назад +2

    Отдельное спасибо за Promise.all() - я когда-то недавно хотел вывести данные по фильмам этого сервака. И вот не знал, как по нажатию можно было перейти на отдельную страницу с описанием по каждому эпизоду... В общем, теперь знаю)))
    Еще вопрос: почему мы не везде не подключали Suspens() с прелоадером? Ну, вот пока не загрузилась страница, обрабатывается запрос - видим компонент прелоадера

  • @TheArestus
    @TheArestus 3 года назад

    Как всегда отлично!

  • @МаксимНырков-у6г
    @МаксимНырков-у6г 3 года назад +1

    Если не сложно, напомните, почему используют Storybook? только для просмотра какие есть компоненты и всё? Или есть еще что-то? И как часто используется?

    • @LetsCodeDev
      @LetsCodeDev  3 года назад +10

      Концепция Сторибука (или любого подобного решения) следующая
      1. Есть большой проект (н-р: крупная банковская система: Сбер, Тиньков)
      2. В рамках этого большого проекта работает очень много команд: кто-то делает сервисы по кредитам, кто-то занимается брокерскими счетами. Среди всего множества команд, есть одна (или больше), которая занимается разработкой UI-компонентов, которые будут использоваться всеми остальными командами.
      3. Все переиспользуемые UI-компоненты помещаются в библиотеку (NPM-пакет), которую можно подключить к своему проекту через npm install name_ui_lib.
      4. После подключения к проекту библиотеки UI-компонентов нужно понимать, что там вообще есть. Можно конечно залезть в исходники, собрать проект и запустить его - но это долго.
      5. Поэтому, разработчики UI-библиотеки дополнительно загоняют все свои компоненты в Сторибук, чтобы остальные команды могли перейти по ссылке и увидит все компоненты с описанием пропсов, которые они принимают и демонстрацией функцонала
      В заключении: Сторибук (его еще называют Ui-Kit) применяется всегда на более-менее крупных проектах. Основная задача: сделать демонстрацию существующих переиспользуемых UI-компонентов и их функционала

    • @МаксимНырков-у6г
      @МаксимНырков-у6г 3 года назад +2

      @@LetsCodeDev Шикарно, спасибо за столь развернутый ответ

    • @LetsCodeDev
      @LetsCodeDev  3 года назад +3

      @@МаксимНырков-у6г Кстати, случайно наткнулся на Сторибук Airbnb
      airbnb.io/react-dates/?path=/story/drp-calendar-props--default

    • @МаксимНырков-у6г
      @МаксимНырков-у6г 3 года назад

      @@LetsCodeDev прикольно. в открытом доступе...режим чтения... Но всё же.. В ОТКРЫТОМ ДОСТУПЕ

    • @LetsCodeDev
      @LetsCodeDev  3 года назад

      @@МаксимНырков-у6г многие компании выкладывают свой UiKit в Open Source для того, чтобы в него контрибьютили другие разработчики

  • @Legion_73
    @Legion_73 3 года назад

    Сделал UiLoader без использования useEffect и useState, в одном стиле с UiButton:
    // UiLoading.js:
    import React from 'react';
    import { ReactComponent as Loader } from './img/loader.svg';
    import PropTypes from 'prop-types';
    import cn from 'classnames';
    import styles from './UiLoading.module.scss';
    function UiLoading({ theme = 'white', classes }) {
    return (



    );
    }
    UiLoading.propTypes = {
    theme: PropTypes.string,
    classes: PropTypes.string,
    };
    export default UiLoading;
    // UiLoading.module.scss:
    @import '../index.scss';
    .loader {
    width: 120px;
    height: 120px;
    }
    .white {
    circle {
    stroke: $color-white;
    }
    }
    .black {
    circle {
    stroke: $color-black;
    }
    }
    .blue {
    circle {
    stroke: $color-blue;
    }
    }

  • @МаксимНырков-у6г
    @МаксимНырков-у6г 3 года назад

    @media ... (max-width: ....)
    Кстати, значение адаптива px тоже надо бы выносить в константы

    • @LetsCodeDev
      @LetsCodeDev  3 года назад +1

      css-переменные нельзя использовать в @media

    • @МаксимНырков-у6г
      @МаксимНырков-у6г 3 года назад

      @@LetsCodeDev только в sass и scss ?

    • @LetsCodeDev
      @LetsCodeDev  3 года назад +4

      @@МаксимНырков-у6г ну да, только в препроцессорах. принцип работа CSS-переменных и переменных в препроцессорах разный. CSS-переменные динамические, они выполняются в рантайме. Их можно переопределять через JavaScript. код препроцессора на этапе сборки компилируется в статичный CSS с фиксированными значениями

  • @yaroslavbox1249
    @yaroslavbox1249 2 года назад

    Loader without svg, only HTML/CSS, you can add any color:
    import PropTypes from 'prop-types';
    import styles from './UiLoading.module.css';
    const UiLoading = ({color, shadow}) => {
    const theme = {borderColor: color,
    filter: `drop-shadow(0 0 2px ${color})`}
    if(!shadow) delete theme.filter;
    return
    }
    UiLoading.propTypes = {
    color: PropTypes.string,
    shadow: PropTypes.bool,
    }
    UiLoading.defaultProps = {
    color: '#fff',
    shadow: true,
    }
    export default UiLoading;
    STYLES :
    .loader {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 5px solid;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
    animation: rotate 2s linear infinite;
    }
    @keyframes rotate {
    0% {transform: rotate(0deg);}
    100% {transform: rotate(360deg);}
    }

  • @RinatWOT
    @RinatWOT 3 года назад +1

    Привет, почему redux toolkit не используешь, с ним же гораздо проще?

    • @LetsCodeDev
      @LetsCodeDev  3 года назад +3

      тут же Редакса еще нет

  • @МаксимИсаев-ъ5о
    @МаксимИсаев-ъ5о 2 года назад

    Объяснение по методу sort про двухзначные числа очень плохая, многие могут поверить

  • @firemanhood1526
    @firemanhood1526 2 года назад

    Чутка погромче плиз, в метро не слышно вообще) спасибо