Задать вопрос
  • Почему дочерний элемент не реагирует на родительский padding?

    Совет #1: скидывайте сложные примеры в JSFiddle или CodePen. Так помочь вам будет гораздо проще и быстрей.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, я думаю, понять эти порожденные вами глупости можете только вы. Так же как и провести связь между ними и словами автора вопроса:

    Хотел бы что-то полезное написать, но фантазия не работает, а если и работает - то понимаешь, что это можно с легкостью воплотить в жизнь на VanillaJS.


    И да, упомянутый вами create-react-app генерирует код JSX, нуждающийся в трансляции, а не чистый JavaScript. И тут вы тоже промахнулись.

    Но самая большая ваша ошибка в том, что под VanillaJS подразумевают код написанный на чистом JS без использования библиотек и фреймворков. Поэтому ваш ответ это глупость вдвойне.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, да нет никакого мнения, есть только истина:

    VanillaJS === JavaScript;  // true
    TypeScript !== VanillaJS;  // true
    JSX !== VanillaJS; // true

    И вы потерпели фиаско, в попытках с ней поспорить.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, да ни один интерпретатор JS не переварит этот код без трансляции.
    Это не я не понял сути вашего ответа, а вы ответили нелепейшей глупостью, не поняв сути вопроса автора. Теперь начали кидаться отмазками из серии "я не имел ввиду то, что сказал".
    Причем тут мое мнение? В этом вопросе нет моего мнения, есть истина. А то, что вы пытались зачехлять в ответе и в комментариях под ним глупость далекая от нее.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, в IE11 старый интерпретатор, а мы говорим о современном стандарте и последних версиях интерпретаторов. Не надо пытаться приплести сюда мою логику, в очередной неумелой попытке оправдаться.

    Итоги я подвел в прошлом комментарии:
    Код React приложения, если не используешь React.createElement надо транслировать, иначе интерпретатор вызовет исключение, то есть это не VanilaJS. Вы облажались. Что и требовалось доказать.

    Дальнейшая дискуссия бессмысленна.
  • Можно как-то еще плавнее сделать сворачиваемость и разворачиваемость строки?

    hollanditkzn, я столько в рефакторинга на чистом js и на React написал. Что скажу вам, что сложная логика которую на чистом js изменять боль и страдания, на React изменяется легко и быстро.
  • Как улучшить Route, react?

    rockon404
    @rockon404 Куратор тега React
    fronter-up, getRoutes например так:
    export getRoutes = permissions => routes.filer(route => route.permission ? permissions.includes(permission) : true);

    но лучше это как-то так организовать:

    export default function SwitchWithRoutes({ routes, checkHasAccess }) {
      return (
        <Switch>
          {routes.map((route, i) => {
           
             if(checkHasAccess(route.permissions) {
               return (
                 <Route
                   key={i}
                   exact={route.path === '/'}
                   path={route.path}
                   component={route.component}
                 />);
              }
              return null;
          })}
        </Switch>
      );
    }
    
    const mapStateToProps = state => ({
      checkHasAccess: checkHasAccessSelector(state),
    });
    
    export default connect(mapStateToProps)(SwitchWithRoutes);
  • Можно как-то еще плавнее сделать сворачиваемость и разворачиваемость строки?

    hollanditkzn, если не знаете react то, наверное, да. Но поддерживать, модернизировать и масштабировать будет значительно легче.
  • Как улучшить Route, react?

    rockon404
    @rockon404 Куратор тега React
    fronter-up, индекс можно использовать там, где нет альтернатив и там где это безопасно. В данном случае его использование не опасно. Во всех проектах, что видел роуты мапят с индексом в key. path в key писать не пробовал. Попробуйте, вдруг подойдет.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин,
    1. Вы в начале написали, что проекты пишутся на VanillaJS, а оказалось, что из пишут на JSX, stage-0, TS, Flow и многом другом, что без трансляции вызовет ошибку интерпретатора.
    Выходит написали глупость, а теперь мажетесь, что все таки транслировать надо.

    2. Не отрицаю React можно с помощью React.createElement, но так никто не делает.

    3. Я не написал глупость, а лишь не перечислил все возможные варианты прессетов и надстроек над JS(яп с трансляцией в JS) которые можно использовать их очень много и ничего из них не переварит интерпретатор. А TS просто содержит в себе поддержку синтаксиса JSX.

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

    Итог: код, если не используешь React.createElement надо транслировать, то есть это не VanilaJS. Что и требовалось доказать.

    Так что идите, пожалуйста, втирайте о том что React пишут на VanillaJS в другом месте. Смешно читать. Как и ваши потуги в оправдаться, написав "сам дурак".
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, React сейчас используя React.createElement никто не пишет.
    Вы видимо путаете код написанный на jsx и stage-0 и код транслированный в ES5 с помощью Babel.
    Пока вы не запустите интерпретатором:
    class MyClass {
      state = { ... };
      handler = () => { ... };
      render() {
        const some = 'some';
        return <div>{some}</div>;
      }
    }

    это не будет являться VanillaJS. Что такое JSX отлично знаю, а вы видимо нет. Не транслированный код вы не запустите, хоть убейтесь.
    Поэтому, простите, отличная попытка, но нет - вы написали глупость.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Иосиф Копейкин, все, что вы написали насчет VanilaJS - глупость.

    Сама фраза:
    Если ты используешь стандартный create-react-app то у тебя итак все пишется на VanillaJS, реакт тут не причем вообще.

    вызывает недоумение и только.
  • Что бы написать на React?

    rockon404
    @rockon404 Куратор тега React
    Вы видимо не поняли суть вопроса и написали глупость в ответе. Зачем приплели create-react-app вообще непонятно.
    React приложения пишут на jsx, обычно используя при этом фишки ES6 и stage-0.
    Автор, видимо, имел ввиду, что он полагает, что может написать более-менее простое приложение не используя фреймворков на чистом JS.
    Автору надо просто погуглить и он найдет массу идей для своего первого приложения.
  • Как удалить объект из массива если в свойстве объекта присутствует null?

    massef, асинхронность. Почитайте о ней. Вот исправленный вариант:
    https://jsfiddle.net/rockon404/7r4861de/
    Посмотрите в логе, что вызывается в какой момент и подумайте почему.

    Тут производительность функции filter при фильтрации массива на 10000 элементов.
    https://jsfiddle.net/rockon404/350bffk2/
    У меня на машине это занимает меньше 1 тысячной секунды.
  • Как с помощью Gitflow поддерживать старые версии?

    Мы создаем фиксы от релиза как feature/ и мержим с релизом.
  • Как установить "это", если не имеешь доступа по npm установке?

    Совет купите VDS. А по существу, вы уверены, что на вашем хостинге вообще нужная версия node.js есть?
  • Сделать один объект из нескольких, как?

    Interface, Вот этот вариант выполняется в среднем то хуже, то лучше. а разница доли 1 тысясчной секунды для 10000 элементов(по сути разницы, пока счет не на миллионы, нет)
    https://jsfiddle.net/rockon404/f6e8pmz7/
  • Сделать один объект из нескольких, как?

    pterodaktil,
    1. Вариантов много без "всякого говнокода":
    acc.message += (!i ? '': '\n') + el.message;
    Даже с дополнительным условием алгоритм завершает операцию с массивом 10000 элементов в среднем 5 раз быстрей в Chrome и более чем в 10 раз быстрей в Firefox.
    https://jsfiddle.net/rockon404/gvu1vg0r/

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

    Но вы верно заметили, я не подумал о последнем переносе. В условиях задачи в конце строки переноса нет. Моя невнимательность. Исправил ответ.
  • Сделать один объект из нескольких, как?

    Interface, насчет reduce согласен, лишние операции. Но удобство.
    Функцию reduce оправдывает ее читаемость и лаконичность, но там где нужна производительность ее использовать не следует. Но это точно не про текущую задачу, тут ее использовать удобно.

    Доводы вы поняли не правильно и то и другое просадка в производительности. Внизу будет бенчмарк.

    А вот этот алгоритм эффективней вашего решения, только из-за одного подхода.
    const result = {
      status: 'approved',
      message: [],
    };
      
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].status === 'approved') {
        result.message.push(arr[i].message);
      }
    }
    
    result.message.join('\n');


    Вот бенчмарк на средний показатель за 500 проходов по 10000 элементам.

    https://jsfiddle.net/rockon404/mqpha6qg/

    В бенчмарке в комментарии ниже решение с reduce, да еще и с дополнительным условием, и оно дает результаты не хуже вашего решения.
    Так что думайте сами, что менее оправданно reduce или ваши два прохода.
  • Сделать один объект из нескольких, как?

    pterodaktil, в том самом месте где, по-видимому, заканчиваются ваши знания основ js.
    Вот пример который призван объяснить вам в каком месте это происходит и почему ваше предположение "а на каждой следующей итерации идет заполнение/дополнение этого объекта" не имеет ничего общего с тем, что происходит в действительности.