• Что делать, если в componentDidMount мне надо зарендерить react-элемент в dom?

    rockon404
    @rockon404 Куратор тега React
    KononovD, svg спрайты никак не мешают использовать свойство fill, какую бы вы библиотеку для стилизации при этом не использовали. Вы делаете ряд необязательных действий и вычислений, для задачи, которая решается одной строчкой и нативными средствами браузера.
  • Как называется динамическая подгрузка данных?

    ZakkMalin, infinite scroll это реализация бесконечной подгрузки данных по скроллу. Оптимизация с добавлением в DOM только видимой части списка называется виртуализацией.
    Если вам не нужна как вы писали "отгрузка", то пишите просто infinite scroll. Если нужна или сомневаетесь, то можно указать что-то вроде "при необходимости использовать виртуализацию списка".
    Вообще лучше описать задачу разработчикам и обсудить необходимость ее использования. В большинстве задач она не нужна.
  • Как грамотно построить общение, чтобы HR первым назвал вилку зарплаты?

    SomeoneUnknown, можно так и спросить - "какая на данной позиции вилка ЗП?". Это очень важный вопрос и вряд ли вас за него побьют.
  • Массивы объектов в state - как обновлять?

    rockon404
    @rockon404 Куратор тега React
    maksipes, ну смотрите. Например, у вас есть список комментариев, с тредами, лайками, реакциями и прочим функционалом, который строится рендером массива comments, но все остальные данные нужные комментариям вы забираете из центрального хранилища и у вас там для оптимизации вроде memo, реализации shouldCompnentUpdate, PureComponent или просто connect, в случае использования Redux. И вот если обновить только один элемент и сам список, перерисуется только компонент списка и нужный комментарий, а остальные комментарии перерисованы не будут. В случае, если реализовать обновление как в коде в вопросе, произойдет напрасная перерисовка всех комментариев - довольно сложных компонентов. И пусть это будет только в Virtual DOM, это все-равно будет не дешевая операция.
  • Есть ли проекты на фрилансе с React?

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

    Точно не на фрилансе.

    Можно ли как то получить заказы на фрилансе, и на сколько их много?

    Если вы квалифицированный специалист - да.
    Если "изучил основы React" - скорей нет, чем да. В любом случае, ничего близкого, не то, что к хорошему, хотя бы к приемлемому коду вы не напишите.
  • Что такое Аксессоры?

    kirillleogky, есть статьи в интернете, где геттеры и сеттеры называют JavaScript Accessors или Object Accessors. Автор, скорей всего, их и переводил. В спецификации ничего такого нет.
  • Что такое Аксессоры?

    kirillleogky, чего непонятного-то? Вот объект:
    const foo = {
      bar: 'bar',  // не важно свойство это, getter или setter
    };

    Как обратиться к bar?

    Точечная нотация:
    foo.bar

    Скобочная нотация:
    foo['bar']
  • Как демонтировать компонент после его скрытия?

    rockon404
    @rockon404 Куратор тега React
    AnotherUniverse, для чего вам размонтировать компонент из самого себя? Если это не root компонент приложения, то это невозможно.
    Даже если бы вы попробовали, в таком случае, использовать unmountComponentAtNode, React бы все-равно не дал вам этого сделать. Он работает только с контейнером приложения/модуля и нужен только для кейсов, где есть необходимость в полном его размонтировании.
    Пример:
    import React from "react";
    import ReactDOM from "react-dom";
    
    const rootElement = document.getElementById("root");
    
    const unmountApp = () => {
      ReactDOM.unmountComponentAtNode(rootElement);
    };
    
    const App = () => (
      <>
        <div>App</div>
        <button onClick={unmountApp}>Unmount App</button>
      </>
    );
    
    ReactDOM.render(<App />, rootElement);


    Примером реального кейса, можно привести монтирование модуля формы по клику и размонтирование его в конце работы.
    В подобных кейсах мы точно знаем, откуда надо демонтировать модуль, так как помним, куда его монтировали.
  • Какой хостинг выбрать для приложения на реакт?

    rockon404
    @rockon404 Куратор тега React
    Oleg Urievich, должна быть возможность работы node.js
  • Какой хостинг выбрать для приложения на реакт?

    rockon404
    @rockon404 Куратор тега React
    Oleg Urievich, это приложение, которое выполняется на стороне сервера, возвращается на клиент и снова выполняется, на клиенте вместо повторной отрисовки происходит быстрый процесс гидрации.
    SSR - server side rendering.
    ReactDOMServer.
    Pre-rendering.

    Есть готовые решения для ssr, например, фреймворк next.js
  • Что первым создаётся в этом js коде ??

    rockon404
    @rockon404 Куратор тега React
    KasAskar, определение класса:
    class Foo {
      constructor() {
        this.bar = this.bar.bind(this);
      }
    
      bar() {}
    }

    равносильо(с парой оговорок):
    function Foo() {
      this.bar = this.bar.bind(this);
    }
    
    Foo.prototype.bar = function () {};
  • Из-за чего выходит ошибка "TypeError: Cannot read property 'createContext' of undefined"?

    rockon404
    @rockon404 Куратор тега React
    Kir03, попробуйте добавить в tsconfig.json еще вот это:
    "moduleResolution": "node",
    и попробовать снова.
  • Делают ли так в React?

    rockon404
    @rockon404 Куратор тега React
    maksipes, могу посоветовать скорей начать реализовывать какую-нибудь реальную задачу. Так понимание многих вещей придет само-собой.
  • Как понять, что я стал junior'ом (C++)?

    Как понять, что я стал junior'ом (C++)

    Заглянуть в трудовую и увидеть там запись о том, что вы с недавнего времени работаете на соответствующей должности.
  • Делают ли так в React?

    rockon404
    @rockon404 Куратор тега React
    maksipes, нет. Я писал, что неправильно сверяться с DOM-селекторами, когда возможности фреймворка позволяют этого не делать. В случае с dataset, вы, просто, передаете и получаете дополнительные данные. Тем не менее, я бы стал использовать подобный прием только в случае необходимости.

    В использовании нативных элементов нет ничего плохого, вам так или иначе надо получать из них данные, а dataset это дополнительная нагрузка данными.
    Например, в React разработке приветствуется работа с состоянием, но было бы странным, например, обновлять по timeupdate состояние проигрывателя со сложным интерфейсом, тут гораздо эффективней работать с Refs API и получать данные о currentTime напрямую из нативного элемента.

    Да и вообще, в реальных проектах и нестандартных задачах зачастую приходится уходить в сторону от best practice. Но это стоит делать только там, где в этом есть реальная необходимость или выгода.
  • Делают ли так в React?

    rockon404
    @rockon404 Куратор тега React
    maksipes, нет ничего страшного в том, что вы создаете hanlder каждый render если в него необходимо передать какую-либо дополнительную информацию.
    Если это начинает бить по производительности, то можно прибегнуть, например, к использованию data атрибутов:
    handler = e => {
      const { index } = e.target.dataset;
    };

    <div data-index={index} onClick={hanlder} />

    HTMLElement.dataset

    Да, количество подходов может по-началу сбить с толку, но с опытом все встанет на свои места и придет понимание.
  • Делают ли так в React?

    rockon404
    @rockon404 Куратор тега React
    Тут правильней будет назвать функции возвращающие хандлеры createOnTextClick, createOnHintClick и createOnExtraClick, так как при беглом анализе текущие названия могут сбить с толку.

    Ну и, на самом деле, этот прием не дает каких-либо преимуществ в данном случае, так как хандлеры все равно будут создаваться каждый render.
  • Делают ли так в Reacte?

    rockon404
    @rockon404 Куратор тега React
    maksipes, во-первых ваш кейс оторван от реальности. Не ясно зачем вам выдергивать из компонента все эти слушатели, а с ними, возможно, состояния, да и вообще зачем слушать клики по тексту.
    Во-вторых да, лучше повесить разные слушатели onItemClck, onToggleHint и тд.
    В-третьих, вы по клику получаете DOM элемент и сверяете его селектор. Случайно удалите или переименуете - вылезут баги. Если не покрыть этот кусок тестами, то баги улетят в prod.

    Там и классНэйм вместо класс идёт.

    Тут могу лишь предложить вам поближе познакомиться с Web APIs.
    Событие вы получаете синтетическое, а объект нативный.
    Element.className


    Короче говоря, такой подход смело можно назвать bad practice.
  • Подключение платежной системы для сайта?

    NikSIk31, у них форма собственности ИП. А сайт, конечно, шлак.
  • Стоит ли использовать изоморфное приложение в высоконагруженном e-commerce проекте?

    rockon404
    @rockon404 Куратор тега React
    Robur, стоит добавить, что не так легко найти опытных разработчиков, которые согласятся работать с велосипедом. А уход из проекта ключевых может обернуться серьезными последствиями.