Both refs and state persist between renders. Updating state schedules a render, whereas mutating ref.current does not, so refs should not hold information needed to render the UI.