и посмотреть медиа
Entrevista de Frontend - JS HTML CSS
и посмотреть медиа
Canal para preparar entrevistas de frontend: JavaScript, HTML, CSS. Tareas prácticas y análisis.
Canal para preparar entrevistas de frontend: JavaScript, HTML, CSS. Tareas prácticas y análisis.
El recurso está dedicado a la preparación para entrevistas de desarrolladores de frontend. Contiene preguntas, pruebas y respuestas en JavaScript, HTML y CSS. Ayuda a sistematizar el conocimiento y pasar la entrevista con confianza.
Какие есть способы оптимизации рендеринга в react? Это процесс снижения количества лишних перерисовок компонентов, что улучшает производительность приложения. React повторно рендерит компоненты, когда их состояние (state) или свойства (props) изменяются. Однако часто это приводит к ненужным рендерам, которые можно избежать. Производительность Чем больше компонентов рендерится без необходимости, тем больше времени тратится на вычисления и обновления DOM. Экономия ресурсов Избегая лишних рендеров, приложение работает быстрее, а пользовательский интерфейс становится более отзывчивым. Лучший UX Плавная работа интерфейса критична для сложных приложений с большим количеством данных. Мемоизация компонентов React предоставляет утилиту React.memo, чтобы предотвращать ререндеринг компонента, если его props не изменились. import React from 'react'; const MyComponent = React.memo(({ count }) => { console.log('Рендер компонента'); return Счётчик: {count} ; }); // Использование export default function App() { const [count, setCount] = React.useState(0); return ( setCount(count + 1)}>Увеличить ); } Использование `useMemo` и `useCallback` Эти хуки используются для предотвращения повторных вычислений и создания функций при каждом рендере. import React, { useMemo } from 'react'; function ExpensiveCalculationComponent({ number }) { const calculatedValue = useMemo(() => { console.log('Выполняются сложные вычисления...'); return number ** 2; }, [number]); // Пересчитывается только если `number` изменился return Результат: {calculatedValue} ; } Пример useCallback import React, { useCallback, useState } from 'react'; const Child = React.memo(({ onClick }) => { console.log('Рендер дочернего компонента'); return Кликни меня; }); function Parent() { const [count, setCount] = useState(0); const handleClick = useCallback(() => { console.log('Кнопка нажата'); }, []); // Создаётся одна и та же функция между рендерами return ( setCount(count + 1)}>Увеличить {count} ); } Разделение кода и ленивый рендеринг Использование React.lazy и Suspense позволяет загружать компоненты только тогда, когда они необходимы. import React, { Suspense } from 'react'; const LazyComponent = React.lazy(() => import('./LazyComponent')); function App() { return ( ); } Проверка зависимости в `useEffect` Избегайте запуска побочных эффектов, если зависимости не изменились. React.useEffect(() => { console.log('Эффект сработал!'); }, [/* следите только за нужными зависимостями */]); Избегайте анонимных функций и объектов в `props` Передача новых объектов и функций через props вызывает лишние рендеры. Лучше так const data = { key: 'value' }; ; Разделение больших компонентов Если компонент слишком сложный, разделите его на более мелкие, чтобы React мог эффективно управлять состоянием и перерисовкой. Использование ключей при рендере списков Каждый элемент списка должен иметь уникальный ключ, чтобы React мог правильно отслеживать изменения. {items.map(item => ( {item.name} ))} 👉 @frontendInterview
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!