• Можете оценить уровень кода?

    rockon404
    @rockon404 Куратор тега React
    Толстый Лорри,
    Единую, но не атормарную.

    Это не имеет значения. Локальные стили без компонента не несут особого смысла. И их можно хранить в директории с файлами компонента, а можно ограничиться одним файлом. Сути это не меняет.

    Объективно же файл занимает на экране больше места

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

    выше риск конфликтов в VCS при внесении изменений туда или сюда.

    Риск не будет выше. Соглашусь, разве, что при условии, что два программиста решат внести множество изменений по всему файлу, то конфликт может быть более жутким.

    Не совсем понятно, какое сообщество вы подразумеваете,

    Я подразумевал комьюнити React, React Native и Vue.

    ведь разделение концепций - это умолчательное правило для индустрии

    Тут логическая ошибка в рассуждении. "разделение концепций" не имеет прямого отношения к файловой структуре.

    Даже "банда четырех" пишет об этом. Более того, сама концепция выходит далеко за рамки IT.

    Банда четырех пишет о другом. Не надо воспринимать концепцию разделения представления и содержания буквально как "Концепция разделения представления и содержания по разным файлам."

    Не очевидно, как дополнительный файл соотносится с масштабированием чего-либо.

    Я тут неправильно выразился. Имел под масштабированием я подразумевал разрастание какой-либо фичи.
    Было:
    SomeFeature.ts
    Стало:
    /SomeFeature
      /components
      ...
      SomeFeature.ts
      ...
      index.ts

    Никто извне ничего не заметил. Считайте, что причина использования - абстрагирование.

    Моей целью является не styled-components, а тот подход, для которого он сделан.

    Действительность такова, что в ключевых сообществах frontend-разработки существует определенный подход, который имеет ряд преимуществ и недостатков. Он активно применяется и хорошо зарекомендовал себя в больших проектах, а посему имеет право на жизнь.

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

    Да, я пробежался глазами по другим файлам, где не использовалось свойство style и неправильно вас понял, но это был не холивар.
  • Можете оценить уровень кода?

    rockon404
    @rockon404 Куратор тега React
    Вы пишите весь код в один файл или предпочитаете делить на многие?

    Не забывайте, что мы принимаем компонент за самостоятельную сущность. Описывать подобные сущности предпочитаю в отдельном файле, не вынося стили в отдельный файл. Не вижу в этом смысла. Данный подход отлично показал себя в больших командах и, как можно видеть, в других комьюнити(Vue, React Native).

    Заметьте я не говорю, что он объективно лучше. Я лишь написал, что вопрос спорный. Так как у каждого подхода есть свои преимущества и недостатки.

    Файл меньшего размера читать удобнее.

    Но вот то, что работать с несколькими файлами удобней чем c одним, в случае с компонентной архитектурой - не факт.

    Вы так говорите, будто это не преимущество

    Как показывает опыт сообщества - нет.

    и не мешается там

    Мешаться значит препятствовать. Грубое утрирование, вроде кучи.

    В вашем примере какую функцию несет index.ts?

    Абстрагирование. Так же, индексные файлы применяют при вертикальном масштабировании.

    styled-components в этом случае вообще можно выкинуть из проекта.

    Ваши аргумнеты скатываются в банальный холивар из оперы: "styled-components не нужны, лучше использовать мой любимый подход"
  • Можете оценить уровень кода?

    rockon404
    @rockon404 Куратор тега React
    Толстый Лорри,
    Но это ценой сваливания в одну кучу разных сущностей

    Само слово куча - пренебрежительное утрирование, которое к файлам со строгой структурой и аккуратным форматированием не имеет никакого отношения.

    которым не нужно находиться вместе.

    Попробуйте найти объективные аргументы.

    И тянет новую зависимость в проект.

    Вопрос вообще не об этом. По мне так css-селекторы - ни что иное, как пятое колесо в компонентной архитектуре. Но это отдельная тема для обсуждений.

    Такая себе лаконичность.

    ComponentName.ts
    против, например:
    ComponentName/
      View.ts
      styles.ts
      index.ts


    ТС пишет стили прамо в компонентах.

    Видимо, я вас не понял и мы говорили о разном. Да, эти стили стоило вынести в Styled-компонент.
  • Как узнать, что ссылка ведет на картинку на своем домене?

    HelpSophie, я не силен в PHP, но вам надо забрать данные в массив, например $domains_array, передавать данные в шаблон как-то так:
    <script>
      window.__DATA = {
        domainNames:  <?php echo json_encode($domains_array); ?>
      };
    </script>

    В JS коде используете эти данные:
    var domainNames = window.__DATA.domainNames;
  • Можете оценить уровень кода?

    rockon404
    @rockon404 Куратор тега React
    Толстый Лорри,
    в том-то и дело, что к коду (логике) что-то большее, чем название состояний (читай css-классов) отношения не имеет и лишь затрудняет чтение кода.

    Еще более спорное заявление. Чтение кода подобный подход нисколько не затрудняет, ведь код компонентов не пересекается. Важно лишь соблюдать очередность сущностей в файлах. Структура самого проекта проекта с таким подходом получается более лаконичной А в рамках одного файла гораздо удобней работать. Это не мое личное мнение. Подход опробован во многих компаниях и принят за стандарт. В той же Vue разработке, так же для удобства используют однофайловые компоненты. В ReactNative разработке, так же описывают стили в файле компонента.

    В любом случае, тут каждый выбирает для себя сам, что удобней лично для него.

    Разделение логики и представления - это опыт индустрии за 20+ лет.

    Styled-компоненты и React-компоненты это как бы разные сущности.
  • Можете оценить уровень кода?

    rockon404
    @rockon404 Куратор тега React
    Толстый Лорри, спорное заявление. Если писать локальные Styled компоненты в файле компонента, то это заметно ускоряет и облегчает анализ кода. Неоднократно проверено в бою на очень больших проектах.
  • Warning при передаче MobX отслеживаемого массива - какое решение адекватнее?

    rockon404
    @rockon404 Куратор тега React
    Выглядит как нелепый костыль, который даже ошибку не исправляет. Просто подменяете mobx.array на Array и предупреждение библиотеки пропадает.
  • Как узнать, что ссылка ведет на картинку на своем домене?

    HelpSophie, множество способов. Тут надо их где-то описать и лучше сразу писать в шаблон страницы. Например в:
    <script>
      window.__DATA = {
        domainNames:  /* тут передается массив в виде строки */
      };
    </script>

    Реализация зависит от языка, который вы используете на сервере
  • Как узнать, что ссылка ведет на картинку на своем домене?

    HelpSophie, ну можно, например, так:
    var domainsList = [
      'https://domain1.com',
      'https://domain2.com'
    ];
    
    // имена хоста можно и сразу в массиве указать без http:// https:// ,
    // если не собираетесь с протоколом использовать
    var hostNamesList = domainsList.map(function(url) {
      return getDomain(url);
    });
    
    function getDomain(url) {
      return url.replace('http://','').replace('https://','').split('/')[0];
    }
    
    function isExternal(url) {
      
      return hostNamesList.indexOf(getDomain(url)) === -1;
    }
    
    if (isExternal($parent.attr('href')) {
      // do something
    }
  • Как на российских/зарубежных фриланс биржах искать заказы по PSD вёрстки?

    Apostrophe4,
    Меня интересует только PSD

    А верстать по современным удобным макетам(Figma, Zeplin) вам религия не позволяет?
  • Как мне переделать код чтобы он давал другие показатели погоды для моего сайта?

    1. Начать думать.
    2. Перейти на нужную страницу сайта предоставляющего информер.
    3. Сгенерировать готовый или прочитать как сделать свой.
    4. Больше никогда не задавать вопросов, не попробовав найти решение самостоятельно.
  • Почему не работает includes и indexOf при передаче параметра?

    cimonlebedev,
    1. Массивы тоже содержат метод includes: Array.prototype.includes Если вы используете babel, то можете смело использовать.
    2. В tsconfig используйте современные библиотеки типов:
    {
      "compilerOptions": {
        "lib": ["es6", "es2017", "dom"]
      }
    }

    3. Аргумент arr: string выглядит абсурдно. Я думаю, даже не стоит озвучивать почему.

    4. Если вы до сих пор не поняли, то ваш костыль непригоден для использования:
    console.log(String([12,13]).includes(1)) // true
  • Почему не работает includes и indexOf при передаче параметра?

    cimonlebedev, то, что вы написали это не решение.

    console.log(String([12, 13]).indexOf(1)); // 0

    Вы бы хоть в проблеме разобрались.
  • Какой фреймворк выбрать для Node.js в 2019?

    Джавараст Скриптович, начните с изучения Express. После Express Koa осваивается буквально налету.
  • Почему не работает includes и indexOf при передаче параметра?

    cimonlebedev, это не решение, а костыль. Вы обновили ответ и теперь видно, что у вас была ошибка вообще при попытке обращения к newArr.
  • Почему не работает includes и indexOf при передаче параметра?

    Выполните этот код:
    console.log(Array.isArray(arr));
    console.log(arr.constructor.name);

    и скажите результат.
  • Какой фреймворк выбрать для Node.js в 2019?

    Для чего вам? Какая задача?

    В проектах в подавляющем большинстве случаев используют Express и Koa.

    "Менее мейнстримовое" для вас с вашими вопросами будет отличным способом хлебнуть граблей.

    Никакой "пырформанс" не спасет от ограничений вашего кода, который будет выполняться на всех фреймворках с одинаковой скоростью и плевать как быстро ваша шарманка открывает соединения. Лучше научитесь работать с Nginx.

    Изучайте Express или Koa. Это решения, где мало что есть "из коробки", но они легко обвешиваются любыми модулями и middleware.

    С Total будете не у дел и все равно придется в последствии изучать Express или Koa.
  • Как работает этот код?

    Август Милович, это адресовано не вам, а автору ответа)
  • Как работает этот код?

    1. Вы используете неприемлемое для современных гайдлайнов JavaScript форматирование. Это касается переноса фигурной скобки.
    2. Конструкторы в JavaScript принято называть с большой буквы.
    3. Сами хоть понимаете зачем создаете экземпляр Number в четвертом примере?
    4. Переменные в JavaScript принято называть с маленькой буквы.