оригинал:medium.com/better-pro Страна…
Переводчик: Front-end Xiaozhi
Чтобы обеспечить удобочитаемость, в этой статье используется вольный перевод, а не дословный перевод.
Важность в следующих инструментах не зависит от ранжирования.
1.Webpack Bundle Analyzer
Вы когда-нибудь задумывались, на какие пакеты или части вашего приложения приходится общий размер?Webpack Bundle Analyzerможет помочь нам проанализировать.
Webpack Bundle AnalyzerСоздает работающий сервер и предоставляет интерактивную древовидную визуализацию зависимостей. С помощью этого набора инструментов вы можете увидеть расположение визуализированного файла, размер gzip, размер синтаксического анализа и детали между родителем и дочерним элементом.
Самое замечательное в этом инструменте то, что вы можете оптимизировать свое приложение React на основе того, что видите.
Ниже приведен график анализа, который он генерирует:
ясно видноpdf
Размер пакета занимает большинство приложений, а также занимает наибольшую долю аналитических изображений, что является эффектом того, что вы видите, это то, что вы получаете для нас.
Однако создание графика анализа занимает ограниченное место, и вы также можете указать некоторые полезные параметры, чтобы просмотреть его более подробно, напримерgenerateStatsFile: true
, и, при желании, сгенерируйте статическийHTML
файл, который можно сохранить где-нибудь за пределами среды разработки для последующего использования.
2. React-Proto
React-Protoэто инструмент прототипирования для разработчиков и дизайнеров. Это настольное программное обеспечение, поэтому вы должны загрузить и установить это программное обеспечение перед его использованием.
Ниже приведена простая демонстрация того, как его использовать:
Приложение позволяет объявитьprops
а такжеtypes
, просматривать компоненты в дереве, импортировать фоновые изображения, определять их как с состоянием или без состояния, определять, каким будет их родительский компонент, увеличивать/уменьшать масштаб и экспортировать прототипы в новые или существующие проекты.
Приложение кажется более подходящимMac
пользователя, но он все еще работает дляWindows
Пользователь.
После завершения работы с пользовательским интерфейсом вы можете выбрать экспорт в существующий или новый проект. Если вы решите экспортировать в существующий проект и выберите корневой каталог, он экспортирует их в./src/components
,Следующим образом:
вместе сReact hook
Выпущенное, это приложение необходимо обновить, чтобы выполнять больше работы. Конечно, открытый исходный код является преимуществом этого приложения, так как позволяет составить список популярных репозиториев с открытым исходным кодом в будущем.
3. Why Did You Render
Why Did You RenderMonkey-patch React информирует вас о повторных рендерингах, которых можно избежать.
Monkey Patch: Это название произошло от фреймворка Zope. При исправлении ошибок в Zope люди часто добавляют части обновлений в конец программы. Они называются «партизанскими патчами». Позже guerilla постепенно стали писать как gorllia ((горилла), а позже написало monkey (обезьяна), поэтому название мартышкиного патча такое необъяснимое.
Патчи Monkey в основном используются для следующих целей:
- Замена методов, свойств и т. д. во время выполнения
- Добавляйте неподдерживаемые функции без изменения стороннего кода
- Добавляйте исправления к объектам в памяти во время выполнения, а не в исходный код на диске.
Это очень полезно не только для того, чтобы помочь нам исправить производительность проекта, но и для того, чтобы помочь вам понятьReact
как это работает. И, когда вы лучше понимаетеReact
Вы становитесь лучше, когда это работаетReact
Разработчик.
объявив дополнительное статическое свойствоwhyDidYouRender
и установите его значение вtrue
, слушатели могут быть прикреплены к любому пользовательскому компоненту
import React from 'react'
import Button from '@material-ui/core/Button'
const Child = (props) => <div {...props} />
const Child2 = ({ children, ...props }) => (
<div {...props}>
{children} <Child />
</div>
)
Child2.whyDidYouRender = true
const App = () => {
const [state, setState] = React.useState({})
return (
<div>
<Child>{JSON.stringify(state, null, 2)}</Child>
<div>
<Button type="button" onClick={() => setState({ hello: 'hi' })}>
Submit
</Button>
</div>
<Child2>Child #2</Child2>
</div>
)
}
export default App
После этого на консоль выводится раздражающе подробное предупреждение:
Не воспринимайте это как ложный совет, примите это как благо. Воспользуйтесь этими раздражающими сообщениями, чтобы вы могли исправить эти расточительные повторные рендеры.
4. Create React App
каждый знает,Create React AppЭто самый быстрый способ создания проектов React (из коробки).
Что лучше, чемnpx create-react-app <name>
Проще
Чего некоторые из нас могут не знать, так это того, как использовать CRA для созданияTypeScript
проект, это тоже очень просто, просто добавьте в конце--typescript
Только что:
npx create-react-app <name> — typescript
Это избавляет от необходимости ручногоTypeScript
Добавлено к хлопотам проектов создания CRA.
5. React Lifecycle Visualizer
React Lifecycle Visualizerэто пакет npm для отслеживания и визуализации произвольныхReactМетоды жизненного цикла компонента.
а такжеWhy Did You RenderКак и в инструменте, вы можете выбрать любой компонент для запуска визуализатора жизненного цикла:
import React from 'react'
import {
Log,
VisualizerProvider,
traceLifecycle,
} from 'react-lifecycle-visualizer'
class TracedComponent extends React.Component {
state = {
loaded: false,
}
componentDidMount() {
this.props.onMount()
}
render() {
return <h2>Traced Component</h2>
}
}
const EnhancedTracedComponent = traceLifecycle(TracedComponent)
const App = () => (
<VisualizerProvider>
<EnhancedTracedComponent />
<Log />
</VisualizerProvider>
)
Результат запуска следующий:
Однако одним из недостатков является то, что в настоящее время он работает только длякомпонент класса, так что пока не поддерживаетсяHook.
6. Guppy
GuppyдаReact
Дружественный и бесплатный диспетчер приложений и средство запуска задач, которое работает на рабочем столе и является кроссплатформенным, вы можете с уверенностью его использовать.
Он предоставляет удобный графический интерфейс для многих типичных задач, с которыми часто сталкиваются разработчики, таких как создание новых проектов, выполнение задач и управление зависимостями.
GuppyКак это выглядит после запуска
7. react-testing-library
react-testing-library— отличная библиотека для тестирования, которая позволяет вам чувствовать себя комфортно при написании модульных тестов. Этот пакет предоставляетReact DOMУтилиты тестирования, поощряющие передовые методы тестирования.
Это решение предназначено для решения проблемы тестирования деталей реализации, а не для тестирования входных/выходных данных компонентов React так, как если бы их видел пользователь.
Этоreact-test -library
Проблема, которую нужно решить, потому что в идеале вы просто хотите, чтобы ваш пользовательский интерфейс работал и отображался правильно в конце.
Неважно, как вы передаете данные этим компонентам, если они по-прежнему обеспечивают ожидаемый результат.
Вот пример кода для тестирования с этой библиотекой:
// Hoist helper functions (but not vars) to reuse between test cases
const renderComponent = ({ count }) =>
render(
<StateMock state={{ count }}>
<StatefulCounter />
</StateMock>,
)
it('renders initial count', async () => {
// Render new instance in every test to prevent leaking state
const { getByText } = renderComponent({ count: 5 })
await waitForElement(() => getByText(/clicked 5 times/i))
})
it('increments
count', async () => {
// Render new instance in every test to prevent leaking state
const { getByText } = renderComponent({ count: 5 })
fireEvent.click(getByText('+1'))
await waitForElement(() => getByText(/clicked 6 times/i))
})
8. React Developer Tools
React Developer Toolsэто расширение, позволяющееChrome
а такжеFirefox Developer Tools
Проверьте иерархию компонентов React в .
ЭтоReact
Наиболее распространенное расширение в разработке, иReact
Один из самых полезных инструментов, который разработчики могут использовать для отладки своих приложений.
9. Bit
пройти черезBitМожно увидеть тысячи компонентов с открытым исходным кодом и разрешить использовать их для создания проектов.
В списке есть много-много компонентов React, которые мы можем использовать, включая вкладки, кнопки, диаграммы, таблицы, панели навигации, раскрывающиеся списки, счетчики загрузки, средства выбора даты, хлебные крошки, значки, макеты и многое другое.
10. Storybook
Storybookэто библиотека для простого создания компонентов пользовательского интерфейса. Инструмент из коробки запускает живой сервер разработки с поддержкой горячей перезагрузки, где вы можете самостоятельно разрабатывать живыеReactкомпоненты.
Этого достаточно для обычной страницы документации:
11. React Sight
Вы когда-нибудь задумывались, как ваше приложение будет выглядеть на блок-схеме?React SightПозволяет визуализировать приложения React, показывая живое дерево иерархии компонентов всего приложения.
Он также поддерживаетreact-router,Reduxтак же какReact Fiber.
С помощью этого инструмента вы можете наводить указатель мыши на узлы, которые являются ссылками на компоненты, напрямую связанные с компонентами в дереве.
Если у вас возникли проблемы с просмотром результатов, вы можете ввести в адресной строкеchrome:extensions
, найдите поле React Sight и нажмите“Allow access to file URLs”
переключиться следующим образом:
12. React Cosmos
React Cosmos— это инструмент разработки для создания повторно используемых компонентов React.
Он сканирует ваш проект на наличие компонентов и позволяет:
- Рендеринг компонентов с любой комбинацией свойств, контекста и состояния.
- Макет каждой внешней зависимости (ответ API,
localStorage
Ждать). - Наблюдайте за изменением состояния приложения в режиме реального времени при взаимодействии с запущенными экземплярами.
13. CodeSandbox
CodeSandboxОнлайн-редактор, в котором можно создавать и запускать веб-приложения.
CodeSandbox изначально поддерживается только на ранней стадииReact, но теперь они расширились доVueа такжеAngularДругие стартовые шаблоны для других библиотек.
Они также поддерживают использование общих генераторов статических сайтов, таких какGatsbyилиNext.js), чтобы создать проект для запуска веб-проекта React.
14. React Bits
React Bitsпредставляет собой набор шаблонов, методов, советов и приемов React, написанных в формате онлайн-документации, где вы можете быстро получить доступ к различным шаблонам и методам проектирования, анти-шаблонам, стилям, вариантам UX на той же вкладке и другим полезным, связанным с React материал.
GitHub repo, в настоящее время имеет 10083 звезды.
15. folderize
folderizeявляется расширением VS Code. Он позволяет преобразовывать файлы компонентов в структуру папок компонентов. Компонент React по-прежнему остается компонентом, просто преобразованным в каталог.
Например, допустим, создается компонент React, который принимает файл какprops
для отображения полезной информации, такой как метаданные
Логика компонента метаданных занимала много строк, поэтому мы решили разбить ее на отдельные файлы. Однако при этом у нас есть два взаимосвязанных файла.
Итак, есть каталог, который выглядит примерно так:
мы могли бы захотетьFileView.js
а такжеfilemetada.js
абстрагируется в структуру каталогов, напримерApple
то же самое, особенно учитывая добавление большего количества сFileScanner.js
и другие компоненты, связанные с файлами.
Этоfolderize
сделано для нас, чтобы компоненты получили подобную структуру
16. React Starter Projects
React starter projectsЭто список зависимых библиотек, вы можете быстро использовать имя нужной вам зависимой библиотеки и перейти к соответствующейgithub
начальство.
Как только вы увидите понравившийся стартовый проект, вы можете просто клонировать библиотеку и модифицировать ее под свои нужды.
Однако не все зависимые библиотеки используются при клонировании, потому что некоторые из них необходимо установить в форме до того, как они станут зависимостями проекта.
17. Highlight Updates
Это, пожалуй, самый важный инструмент в наборе для разработки.Highlight UpdatesдаReact DevToolsФункция расширения, чтобы увидеть, какие компоненты на странице перерисовываются без необходимости.
Это может помочь вам легче найти некоторые проблемы с производительностью при разработке страниц, потому что они будут использовать оранжевый или красный цвет для серьезных проблем повторного рендеринга.
18. React Diff Viewer
React Diff Viewerэто простой и красивый инструмент сравнения текстовых различий, который поддерживает разделенное представление, встроенное представление, различие символов, выделение строк и многое другое.
19. JS.coach
JS.coachэто веб-сайт, который я использую чаще всего с библиотеками, которые нужны React. Найдите все, что вам нужно, на этой странице.
Это быстро, легко, постоянно обновляется и всегда дает мне результаты, которые мне нужны для всех моих проектов. Недавно был добавлен React VR, и это здорово.
20. Awesome React
Awesome ReactБиблиотеки с открытым исходным кодом — отличный список, связанный с React.
Я могу забыть о других сайтах и изучать React только по этой ссылке. Потому что здесь можно найти много полезных ресурсов, которые определенно помогут нам создавать отличные приложения React!
21. Proton Native
Proton NativeПредоставляет нам среду React для создания кроссплатформенных собственных настольных приложений.
этоElectron, с некоторыми полезными функциями, в том числе:
-
Тот же синтаксис, что и у React Native.
-
Работает с существующими библиотеками React, такими как Redux.
-
Совместим со всеми обычными пакетами Node.js.
Ошибки, которые могут существовать после развертывания кода, нельзя узнать в режиме реального времени.Чтобы решить эти ошибки впоследствии, много времени тратится на отладку логов.Кстати, всем рекомендую полезный инструмент мониторинга ошибок.Fundebug.
Коммуникация (приглашаем вступить в группу, группа будет присылать красные конверты по рабочим дням, технология интерактивного обсуждения)
Статьи из серии галантерейных товаров резюмируются следующим образом: если вы чувствуете себя хорошо, нажмите «Звезда», добро пожаловать в группу, чтобы учиться друг у друга.
Я Сяо Чжи, автор официального аккаунта "Moving the World",Продолжайте знакомить энтузиастов с передовыми технологиями. Я буду часто делиться тем, что я узнал и увидел, На пути продвижения, давайте подбадривать друг друга!
Обратите внимание на публичный аккаунт и отвечайте в фоновом режимеБлагосостояние, вы можете увидеть преимущества, вы знаете.