It's a good idea to inherit from Disposable whenever a class holds
onto browser resources like DOM elements or XHRs, or if you need to do
specific cleanup whenever an object is no longer necessary.
If you have an object with handles to DOM elements that you no longer
use, those elements may remain resident in memory because the instance
maintains pointers to them and the browser's garbage collector doesn't
know they can be removed. A dispose method lets you delete or null out
those references so the memory can be freed.
In a small, short-running application, this may never be a concern. In
a long-running application, it helps prevent memory leaks. Do you
always need to call dispose()? Strictly, no. Browsers do a reasonable
job of cleaning up memory at page destruction these days. But if you
create and remove many UI Components or network requests, disposing
them when you're through will keep your app's memory footprint down.
Shawn