Важные концепции реагирования
]вы можете использовать userEducer для управления сложными структурами состояния, вы можете использовать для реагирования крюка, который позволяет синхронизировать компонент с внешней системой. Вы можете usecallback / usememo для оптимизации производительности, useref для доступа DOM и создайте пользовательские крючки.
]еще один способ сделать компоненты очень повторно используемыми, используя схему рендеринга . Опора рендеринга - это опора на компоненте, которая является функцией, которая возвращает a jsx element . Сам компонент ничего не делает, кроме рендеринга. Вместо этого компонент просто вызывает рендеринг -проп, вместо реализации своей собственной логики рендеринга .
]suscaense позволяет отобразить запасную дорогу, пока его дети не закончили загрузку.
]Пример :
]}>
граница ошибки -это реактивный компонент, который оборачивается вокруг дерева компонентов и предотвращает распространение любых ошибок в этом компоненте и вызывает сбой всего приложения.
], чтобы использовать его, вы должны просто обернуть дерево компонентов, которое вы хотите защитить с помощью граничного компонента ошибок. Граница ошибки обнаружит ошибки и покажет запасной пользовательский интерфейс, когда они произойдут в обернутом дереве компонентов.
Пример :
class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(error) { // Update state so the next render will show the fallback UI. return { hasError: true }; } componentDidCatch(error, info) { // Example "componentStack": // in ComponentThatThrows (created by App) // in ErrorBoundary (created by App) // in div (created by App) // in App logErrorToMyService(error, info.componentStack); } render() { if (this.state.hasError) { // You can render any custom fallback UI return this.props.fallback; } return this.props.children; } }]Something went wrong}>
Обычно вы передаете информацию из родительского компонента в дочерний компонент через props . Но прохождение реквизита может стать многословным и неудобным, если вам нужно пройти через многие компоненты в середине, или если многие компоненты в вашем приложении нуждаются в одной и той же информации. context Позволяет родительскому компоненту делать некоторую информацию, доступную для любого компонента в дереве под ним - no matter , как глубоко - без передачи ее явно через реквизит .
] Управление государством является важнейшей концепцией в React, наиболее популярных библиотеках JavaScript в мире для создания динамических пользовательских интерфейсов.
]
Управление состоянием приложения с помощью Redux.
bundling великолепен, но по мере роста вашего приложения ваш пакет тоже будет расти. Особенно, если вы включаете большие сторонние библиотеки . Вы должны следить за кодом, который вы включаете в свой bundle , чтобы вы не случайно сделали его настолько большим, что ваше приложение требует долгое время для загрузки .
], чтобы избежать заморожения с большим пучком , хорошо справиться с проблемой и начать «разделить» your bundle . Code-Spliting -это функция, поддерживаемая Bundlers, например webpack , rollup и browserify (через фактор-bundle), которые могут создавать несколько связей, которые могут быть динамически загружены на runtime
-код-рассеиваниеВаше приложение может помочь вам «ленивый нагрузка» только то, что в настоящее время необходимо пользователю, что может значительно улучшить производительность вашего приложения. Хотя вы не уменьшили общий объем кода в вашем приложении, вы избежали загрузки кода, который пользователь может никогда не понадобиться, и уменьшили объем кода, необходимый во время начальной загрузки . ] Заключение
]. Эти передовые концепции улучшают производительность и обслуживание в ваших приложениях React . Вы можете в основном понять и использовать эти концепции ] ]
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3