Passing a function component to React.memo
has the same effect as creating a component that extends the React.PureComponent class would. If, given the same props (input) you always get the same render (output) then that component can be considered pure and React can apply certain optimizations, e.g. doing a shallow compare of props and returning the previous render output if the props have not changed - saving you some CPU cycles.
This is nice because previously if you wanted this behavior you had to extend from the React.PureComponent, of which the class syntax is a bit verbose and being a class, is less flexible than a simple function.