React Job | JavaScript | Вакансии
15.7K subscribers
87 photos
25 videos
2.63K links
Другие каналы с вакансиям - @best_ITjob

Разместить вакансию или рекламу - @hr_ru

telega.in/channels/job_react/card

Роскомнадзор - https://knd.gov.ru/license?id=675531c99d804a279b1f84fe&registryType=bloggersPermission

@Spiral_Yuri
Download Telegram
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает React Context?

Пример кода:
const ThemeContext = React.createContext('light');

const App = () => (
<ThemeContext.Provider value="dark">
<Toolbar />
</ThemeContext.Provider>
);

const Toolbar = () => (
<ThemeContext.Consumer>
{theme => <div>Current theme: {theme}</div>}
</ThemeContext.Consumer>
);


Здесь ThemeContext.Provider передает значение dark, которое может быть использовано в любом дочернем компоненте через ThemeContext.Consumer.

❗️React Context позволяет передавать данные через дерево компонентов без необходимости передавать пропсы на каждом уровне. Это особенно полезно для глобальных данных, таких как темы, настройки пользователя или состояние авторизации. Context состоит из двух частей: Provider (поставщик данных) и Consumer (потребитель данных).

Ссылка на
документацию по React Context
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9👍5
#react #TypeScript #вакансия

Друзья, всем привет!

Ищем Автора для разработки асинхронного курса по продвинутому React и TypeScript для действующих специалистов уровня Jun+.

О нас:
Standard Data – проектируем и реализуем образовательные решения под заказ крупных компаний в сферах ИИ, дата-инжиниринга и веб-разработки.

Кого ищем: Senior и middle-разработчика для создания практикоориентированного курса.

Ожидания от кандидата:
• Опыт от 4 лет;
• Грейд: Senior;
• Глубокое знание TypeScript и React;
• Понимание алгоритмов и паттернов проектирования;
• Желание делиться знаниями.

Что нужно делать:
• Разрабатывать уроки и задачи для курса по TypeScript и React.
• Писать текстовые материалы + задания для тренажера по TS.
• Готовить презентации и семинары по React.
• Работать в команде с тех-лидом, редактором и дизайнером.
Что мы предлагаем:
• Ставка за один урок: 7т.р.
• Бонусная ставка за один урок: 12т.р.
• Ставка за одну практическую задачу под ключ: 2,5т.р.
• Ставка за одно решение практической задачи (текстом): 1,5т.р.

Ждем тебя в нашей команде, пишите в тг, или сразу кидайте резюме: t.me/KaterinkaGl
👎5👍1
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как оптимизировать производительность React-приложения?

Пример кода:
const ExpensiveComponent = React.memo(({ value }) => {
return <div>{value}</div>;
});

const App = () => {
const [count, setCount] = React.useState(0);
const memoizedValue = React.useMemo(() => count * 2, [count]);

return (
<div>
<ExpensiveComponent value={memoizedValue} />
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
};


Здесь React.memo предотвращает лишние рендеры ExpensiveComponent, а useMemo мемоизирует значение.

❗️Оптимизация производительности в React включает несколько подходов:

- Использование
React.memo для мемоизации компонентов и предотвращения лишних рендеров.
- Использование useCallback и useMemo для мемоизации функций и значений.
- Ленивая загрузка компонентов с помощью
React.lazy и Suspense.
- Разделение кода (code splitting) для уменьшения размера начального бандла.

Ссылка на
документацию Optimizing Performance
Please open Telegram to view this post
VIEW IN TELEGRAM
👎71
#вакансия #frontend #senior #job #remote #react
Вакансия: Senior Frontend Developer (React, Next.js)

Смотрим только с опытом 7+ лет на
React

📍 Формат: Full time, удаленно из любой точки мира
💰 Зарплата: 3200-4500$
📍 Локация компании: Сербия
📌 Проект: Smart Education – инновационная EdTech-компания, создающая платформу онлайн-обучения с AI-помощниками. Мы автоматизируем образовательный контент и меняем подход к обучению.

💼Обязанности:
- Развитие и оптимизация архитектуры фронтенда.
- Разработка и поддержка сложных UI-компонентов.
- Верстка адаптивных интерфейсов с учетом кросс-браузерной совместимости.
- Взаимодействие с дизайнерами и backend-разработчиками.
- Написание тестов.
- Code review и менторинг менее опытных разработчиков.

📝Требования:
- 7+ лет опыта в коммерческой разработке.
- Отличное владение React, Next.js, TypeScript.
- Глубокое понимание асинхронного программирования и работы с API.
- Опыт написания тестов

🎯 Мы предлагаем:
- Гибкий график и удаленную работу из любой точки мира (международный контракт)
- Долгосрочный проект и своевременные выплаты.
- 28 дней оплачиваемого отпуска.
- Минимум бюрократии.
- Регулярные performance review с возможностью роста з/п.
- Сильную команду, здоровую атмосферу и адекватное руководство.

📩 Контакт для связи: @hr_olga_osipova
👎40😢3🔥1
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает React Router?

Пример кода:
import { BrowserRouter, Route, Link } from 'react-router-dom';

const App = () => (
<BrowserRouter>
<Link to="/about">About</Link>
<Route path="/about" component={About} />
</BrowserRouter>
);

const About = () => <div>About Page</div>;


Здесь Link создает ссылку на страницу /about, а Route отображает компонент About при переходе на этот путь.

❗️React Router — это библиотека для управления маршрутами в React-приложении. Основные компоненты: BrowserRouter, Route, Link, Switch. BrowserRouter оборачивает приложение и предоставляет функциональность маршрутизации. Route определяет, какой компонент отображать для определенного пути. Link используется для навигации между страницами без перезагрузки.

Ссылка на
документацию React Router
Please open Telegram to view this post
VIEW IN TELEGRAM
👎18👍4
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает Redux?

Пример кода:
const initialState = { count: 0 };

function reducer(state = initialState, action) {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
default:
return state;
}
}

const store = Redux.createStore(reducer);

store.dispatch({ type: 'INCREMENT' });
console.log(store.getState()); // { count: 1 }


Здесь reducer обрабатывает действие INCREMENT, увеличивая счетчик.

❗️Redux — это библиотека для управления состоянием приложения. Основные концепции: Store (хранилище), Actions (действия) и Reducers (редюсеры). Store хранит состояние всего приложения. Actions — это объекты, которые описывают, что произошло (например, { type: 'INCREMENT' }). Reducers — это функции, которые определяют, как состояние изменяется в ответ на действия.

Ссылка на
документацию Redux
👍4😢2👎1
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как тестировать React-компоненты?

Пример кода:
import { render, screen } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});


Здесь тест проверяет, что компонент App рендерит текст "learn react".

❗️Для тестирования React-компонентов используются Jest и React Testing Library. Jest — это фреймворк для запуска тестов, а React Testing Library предоставляет инструменты для тестирования компонентов в условиях, близких к реальным. Основные методы: render (рендерит компонент), screen (доступ к элементам DOM), fireEvent (симуляция событий).

Ссылка на
документацию Testing Library
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает Server-Side Rendering (SSR) в React?

Пример кода:
import ReactDOMServer from 'react-dom/server';
import App from './App';

const html = ReactDOMServer.renderToString(<App />);


Здесь renderToString рендерит компонент App в строку HTML.

❗️Server-Side Rendering (SSR) позволяет рендерить React-компоненты на сервере и отправлять готовый HTML клиенту. Это улучшает SEO и производительность, так как страница загружается быстрее. Для SSR используются библиотеки, такие как Next.js, или встроенные методы React, такие как ReactDOMServer.renderToString.

Ссылка на
документацию React SSR
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает React Portals?

Пример кода:
const Modal = ({ children }) => {
return ReactDOM.createPortal(
<div className="modal">{children}</div>,
document.getElementById('modal-root')
);
};


Здесь Modal рендерится в элемент с id modal-root, который может находиться вне основного дерева компонентов.

❗️Portals позволяют рендерить дочерние элементы в DOM-узел, который находится вне иерархии родительского компонента. Это полезно для модальных окон, всплывающих подсказок и других элементов, которые должны быть отрендерены вне основного дерева компонентов.

Ссылка на документацию по
React Portals
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7👍5
#собесы #react #senior
Вопросы, которые могут задать на собеседовании Senior React Developer.
Проверьте себя без помощи поисковиков!


Как работает React Suspense?

Пример кода:
const LazyComponent = React.lazy(() => import('./LazyComponent'));

const App = () => (
<React.Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</React.Suspense>
);


Здесь LazyComponent загружается лениво, а Suspense отображает fallback (загрузочный индикатор) до завершения загрузки.

❗️Suspense позволяет откладывать рендеринг компонентов до тех пор, пока не будут выполнены определенные условия (например, загрузка данных или кода). Это особенно полезно для ленивой загрузки компонентов и асинхронных операций.

Ссылка на документацию по
React Suspense
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎1