When to use apollo-link-state over client.readQuery?

I need to have a state of weather the user is logged in or not so that I can conditionally render components.

I read that apollo-link-state was the way to do this, which I managed to implement based on this video: https://www.youtube.com/watch?v=2RvRcnD8wHY&feature=youtu.be

However now I’ve done some more reading I think I could have done this by reading the client cache without apollo-link state:

So what does apollo-link-state allow you to do that can’t be done with the default Apollo cache?