What does useImperativeHandle let a component do with a forwarded ref?
useImperativeHandle customizes the handle assigned to a forwarded ref. It can expose a small imperative API instead of giving the parent unrestricted access to an entire DOM node.