useNavigate is useful when navigation happens as a result of code logic, such as after a successful form submission, login, logout, or completed async action.