Interface for any kind of object (typically, a component) that can provide a
client-side
id, typically used in the generation of client-side (JavaScript) logic. For components, the client id will be null
or inaccurate until after the component has rendered itself. Inside of any kind of loop, the clientId property is
only accurate just after the component has rendered, and before it renders again.
Some components must be configured to provide a client id. In many cases, the client id matches the component's
component id, typically passed through
JavaScriptSupport.allocateClientId(String)
to ensure uniqueness.