jsx-eslint/eslint-plugin-react

Rule proposal: ssr-friendly

Open

#2,057 opened on 2018年11月26日

GitHub で見る
 (21 comments) (23 reactions) (0 assignees)JavaScript (2,797 forks)batch import
acceptedhelp wantednew rule

Repository metrics

Stars
 (8,630 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

In order to be SSR compliant, you can only access browser globals such as window, document and so on, inside of componentDidMount, componentDidUpdate and componentWillUnmount

A rule could be created to avoid the use of unguarded browser globals in other lifecycle methods.

Example of a guard:

if (typeof window !== 'undefined') {
 // I can use browser globals in here
}

Use of browser globals are allowed when:

  • used in a guard
  • used in componentDidMount, componentDidUpdate and componentWillUnmount
  • used in useEffect or useLayoutEffect
  • used in an event handler

コントリビューターガイド