|
I saw some stuff about cursors as a way of displaying only a part of the global state. One thing about accounting is that the balance of an account is dependent on every prior transaction that the account has ever had. So modeled in functional terms, it seems like you have to make this a tree of depth "N" where N is the total number of transactions in the account. For one, I don want to have to load every transaction into memory. Even though the most recent transaction depends logically on the first one, I don want to be forced to load the first one just to show the most recent one. One possible way Mens Nike Air Max 2016 Red
does this require the entire application state t
well. The UI can "subscribe" to certain transactions and this serves as a Nike Air Max 2016 For Sale signal to the data layer about what needs to be loaded and what derived values need to be kept up to date. The data layer can be smart about how many transactions it actually needs to load to compute what the UI cares about.
and you attach the currently selected data when it is needed, swapping the old for the new. You can easily do this with an om command. It is also easy to then send the old data to the server while the new data is loaded into the state, if you have changes you need to keep in sync (om gives you the old value).2. I have experimented with creating Om components that read the value of their cursor for some sentinel value (maybe nil or a special keyword or something) that tells it the data is not loaded, which then requests the data from the server before passing it to its child component for consumption (perhaps throwing up a loading indicator in the meantime). You can then also implement logic to unload data again (maybe a timeout after the child stops using it). Personally, I like it this way because I know my access patterns better than Om does.
swannodette 71 days ago link
So there are two very similar approaches that I tried out:1. If you have data where you basically select one of a collection datasets (eg in my application, if I can only chart one metric at a time), then you can have an end point in the tree for this data Nike Air Max Running
to work around this is to collapse all transactions prior to the ones I want to display into a single "fake" transaction that stores the accumulated balance as of this point. If the tree has only one logical root (the most recent transaction) and is logically N transactions deep, how does the UI indicate which of those N it actually cares about? Maybe Om cursors can do this somehow?I been using a more traditional mutation based design, which seems to be working Nike Air Max Ladies Trainers
No, you are still free to organize your application state however you wish. For example, our app dynamically pulls in content as you browse from feed to feed and use infinite scroll. It up to you to decide what to fetch when, and what to cache as the user navigates around. .
White Nike Air Max Women
Nike Max Air Shoes 2014
Air Max 2016 Nike
Adidas Primeknit 2.0 Hypebeast
Nike Air Max Womens All Black
Nike Air Max 2016 Grey Orange
Womens Air Max 2017
Nike Air Max Ultra Moire Black White
Adidas Primeknit Multicolor
Adidas Originals Womens Black
Nike Air Max 2016
Nike Air Max 2016 Print Blue
Adidas Neo Cacity Mid
Adidas Originals Pink And White
Womens Nike Air Max White