Just had a revelation when it comes to data stores inside Sencha Touch.

I was treating stores as a central repository of data I've loaded from the server, and used those same stores to populate my lists and data views. I was doing this because I was under the impression that I was saving memory and resources.

Problem was - I was seeing a lot of my views slow down, because I had to filter each store on show of the view. Another problem I was running into was looking up items in the store when I had filters applied. This was quickly becoming messy.

It took me awhile, but I realized that I should have stores for each view component, and simply populate them with data I'm keeping in "central stores". The stores for each view can then be filtered & sorted without causing item lookup issues or performance problems.

Taking a page from SQL I came up with the idea of a "ChildView" store to use for my lists and other data views. Set a parentStore on the ChildView, then you can filter away at the ChildVIew without effecting your central data.

You can even set a "queryFunc" to restrict the type of data that gets pulled from your parentStore. This data is kept in sync by watching the events on parentStore, and reloading it as items change.

https://gist.github.com/3781077

Would love to hear feedback on this, and hopefully it helps someone having the same problems I was.