As with pages, individual components may have state that persists between request cycles. This is rare for non-page components, but still possible and useful in special circumstances.
A client that must persist some client state uses its page's changeObserver.
It simply posts ObservedChangeEvents with itself (not its page) as the
source. In practice, it still simply invokes the fireObservedChange() method.
In addition, the component should implement the interface
PageDetachListener, and implement
the method pageDetached(), and, within that method, reset all
instance variables to default values, just as a page does (in its detach() method).