From 62e95d87c3b1c84f6c5303ae762e050745f5030c Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 18 Nov 2019 22:33:51 +0100 Subject: [PATCH] less re-renders for header & footer --- package-lock.json | 19 +++++++------- package.json | 4 +-- src/components/Layout.tsx | 5 ++-- src/components/atoms/Typekit.tsx | 16 +++++------- src/components/organisms/Footer.tsx | 24 +++++++++-------- src/components/organisms/Header.tsx | 40 +++++++++++++++-------------- 6 files changed, 55 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95322830..2ae7ae04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2796,6 +2796,15 @@ "@xtuc/long": "4.2.2" } }, + "@welldone-software/why-did-you-render": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@welldone-software/why-did-you-render/-/why-did-you-render-3.3.9.tgz", + "integrity": "sha512-uH8gQvggyAvrRdib2+n+/ZwbVtUhap2Tvere+Bb3KWAE6K4rdgZMUtjtovjbLaAqR4zN4XWGLjp7Dc/MAhBKoQ==", + "dev": true, + "requires": { + "lodash": "^4" + } + }, "@wry/equality": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", @@ -25209,16 +25218,6 @@ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" }, - "why-did-you-update": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/why-did-you-update/-/why-did-you-update-1.0.6.tgz", - "integrity": "sha512-XVrdHhdrPBDuSW8b/uH6DCb1/0984qv8KElpE8NZiRvWZX8nw49av577+ZyIrxSNesi6r2cQEhpxQTKFFHTj8A==", - "dev": true, - "requires": { - "lodash": "^4.17.11", - "react-fast-compare": "^2.0.3" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/package.json b/package.json index 50a033b9..1c18f737 100644 --- a/package.json +++ b/package.json @@ -102,6 +102,7 @@ "@types/shortid": "0.0.29", "@typescript-eslint/eslint-plugin": "^2.6.1", "@typescript-eslint/parser": "^2.6.1", + "@welldone-software/why-did-you-render": "^3.3.9", "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", "eslint": "^6.6.0", @@ -129,8 +130,7 @@ "stylelint-config-standard": "^19.0.0", "stylelint-prettier": "^1.1.1", "ts-jest": "^24.1.0", - "typescript": "^3.7.2", - "why-did-you-update": "^1.0.6" + "typescript": "^3.7.2" }, "repository": { "type": "git", diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 80a4c89e..eac664c7 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -6,8 +6,9 @@ import Footer from './organisms/Footer' import styles from './Layout.module.scss' // if (process.env.NODE_ENV !== 'production') { -// const { whyDidYouUpdate } = require('why-did-you-update') -// whyDidYouUpdate(React) +// // eslint-disable-next-line +// const whyDidYouRender = require('@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender.min.js') +// whyDidYouRender(React) // } export default function Layout({ diff --git a/src/components/atoms/Typekit.tsx b/src/components/atoms/Typekit.tsx index 32266c55..888a5969 100644 --- a/src/components/atoms/Typekit.tsx +++ b/src/components/atoms/Typekit.tsx @@ -20,14 +20,12 @@ const TypekitScript = (typekitID: string) => ( export default function Typekit() { const { typekitID } = useSiteMetadata() - return ( - typekitID && ( - - - + return typekitID ? ( + + + - {TypekitScript(typekitID)} - - ) - ) + {TypekitScript(typekitID)} + + ) : null } diff --git a/src/components/organisms/Footer.tsx b/src/components/organisms/Footer.tsx index 6bab6a0f..9698cf40 100644 --- a/src/components/organisms/Footer.tsx +++ b/src/components/organisms/Footer.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { PureComponent } from 'react' import { Link } from 'gatsby' import Container from '../atoms/Container' import Icon from '../atoms/Icon' @@ -32,15 +32,17 @@ function Copyright() { ) } -export default function Footer() { - return ( - + ) + } } diff --git a/src/components/organisms/Header.tsx b/src/components/organisms/Header.tsx index 42dee1dd..60227d04 100644 --- a/src/components/organisms/Header.tsx +++ b/src/components/organisms/Header.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { PureComponent } from 'react' import { Link } from 'gatsby' import Container from '../atoms/Container' import Search from '../molecules/Search' @@ -7,23 +7,25 @@ import { ReactComponent as Logo } from '../../images/logo.svg' import styles from './Header.module.scss' -export default function Header() { - return ( -
- -
-

- - kremalicious - -

+export default class Header extends PureComponent { + render() { + return ( +
+ +
+

+ + kremalicious + +

- -
-
-
- ) + +
+
+
+ ) + } }