Which pattern avoids recreating an expensive object on every render when storing it in a ref?
Calling useRef(new ExpensiveObject()) evaluates the constructor on every render even though later initial values are ignored. A null check performs predictable lazy initialization only when needed.