Как структурировать код утилиты React Preload

В настоящее время я изучаю React после многих лет работы с ванильным JS и jQuery.

Мне нужно предварительно загрузить некоторые веб-шрифты, а в будущем, возможно, изображения, аудио, видео и т. д.… Действительно что угодно. Этот вопрос может относиться к любому количеству утилит, которые необходимо выполнить, прежде чем что-то отобразится на экране.

Я подошел к этому так же, как и всегда - загружаю материал, затем устанавливаю переменную, которую я могу использовать для определения того, какой контент отображается (в этом случае переменная устанавливается в хранилище Redux).

Мой код preload.js выглядит следующим образом:

import WebFont from 'webfontloader';
import store from 'js/store/store';
WebFont.load({
  custom: {
    families: ['MyCustomFont']
  },
  active: function(){
    store.dispatch.data.setPreloadedFonts();
  }
});

Мой код приложения index.js можно упростить как:

import preload from './preload';
class App extends React.Component {
  render() {
    if (
      this.props.preloadedFonts &&
      this.props.ajaxDataLoaded &&
      this.props.miscOtherStuffDone
    ){
      return (
        <div>
          <Switch>
            // My app routes here…
          </Switch>
        </div>
      )
    }else{
      return (
        <div className = "preloader"></div>
      )
    }
  }
}

Все это работает отлично, просто и требует очень мало кода.

Однако React предупреждает меня: preload определен, но никогда не используется - no-unused-vars

Я понимаю, почему это происходит - «предварительная загрузка» должна быть импортирована, но не используется активно внутри компонента. Читая вокруг и глядя на некоторые другие плагины, я предполагаю, что это не «способ React», и что мой предварительный загрузчик должен быть в форме компонента, который обертывает мое приложение - например, <Preloader></Preloader>

Есть ли какой-то особый подход к чему-то вроде этого? Кажется, что любой альтернативный подход, вероятно, будет более сложным и менее гибким.

зачем нужно импортировать предварительную нагрузку?

dynamo 24.07.2018 13:33

@dynamo его обязательно нужно куда-то импортировать, иначе он не запустится?

Primal Anomaly 24.07.2018 13:35

Я не думаю, что тебе это нужно. попробуйте, если он работает, удалив его. Я также могу посмотреть весь код, если вы им поделитесь.

dynamo 24.07.2018 13:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
39
0

Другие вопросы по теме