Do you mean interact with Shared State generally or in the case you outlined?
If this is the case you outlined it is nothing to do with Shared State but with client side objects that represent the server-side controls and the way events are assigned to those objects. A simple example is when the ribbon is minimized, when you click a tab the ribbon pops-up but I need to know when you click away from the ribbon so I can hide it again. I do this by listening to events on the document object.
All I am doing is creating this for you, but more importantly it allows me to know what the client-side object will be called so that I can call methods against this object for hover effects etc.
Why do I do this differently than others? I like this idea, think it is simpler, and requires less code. More importantly they know what they are doing and I don't :-)
Hope that helps.