Thanks to visit codestin.com
Credit goes to github.com

Skip to content

React Next

Sean Lynch edited this page Oct 20, 2019 · 26 revisions

Suspense and React.lazy() 16.6

Code-splitting with loading state

import React from 'react';
import Chart from './Chart';

function App() {
  return (
    <div>
      <Chart />
    </div>
  )
}

becomes

import React, { lazy, Suspense } from 'react';
const Chart = lazy(() => import('./Chart'));

function App() {
  return (
    <Suspense fallback={<SomeLoader />}> {/* Anywhere up the tree, can have many */}
      <div>
        <Chart />
      </div>
    </Suspense>
  )
}

Videos

React.memo() 16.6

Like PureComponent or shouldComponentUpdate or function component

function MyComponent(props) {
  /* only rerenders if props change */
};

export default React.memo(MyComponent)

static contextType 16.6

React Profiler

React Hooks 16.7

Articles

Examples

Fetch

Component size

Hook as Render Prop component

const Query = ({ children, ...props }) => children(useQuery(props))

Is mounted hook

function useMounted() {
  const ref = useRef(false);
  useEffect(() => {
    ref.current = true;
    return () => (ref.current = false);
  }, []);
  return ref.current;
}

usePrevious hook

function usePrevious(value) {
  const ref = useRef();
  useEffect(() => {
    ref.current = value
  });
  return ref.current;
}

useEffectAfterMount

function useEffectAfterMount(cb, dependencies) {
  const justMounted = useRef(true);
  useEffect(
    () => {
      if (!justMounted.current) {
        return cb();
      }
      justMounted.current.false
    },
    dependencies
  )
}

Videos

React Concurrent 16.7

Time-slicing

  • Rendering is non-blocking - yields to user input
  • Coordinate multiple updates at different priorities
  • Pre-render content in the background without slowing down visible content
    • hidden={true}

Suspense

  • Access async data from a server as easily as sync data from memory
  • Pause a component's render without blocking siblings
  • Precisely control loading states to reduce jank

Videos

Later 16.7+

  • React Cache
  • Scheduler

Clone this wiki locally