-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for keepAlive #1949
Comments
@weiwei-lin - kind of like I mentioned in #1950 - are you still having trouble with this/interested in opening a PR? I don't know if I understand all the implications of this feature request, but I'd be happy to talk with you about it if it's still on your mind all this time later. |
i ran into a similar issue that i saw in a data intensive app that uses mobx-state-tree that i found. the full "scenario" that i was seeing was:
.views((self) => ({
get mySlowMethod() {
/* this is a heavy computation or is slow */
},
}))
.actions((self) => ({
afterAttach() {
addDisposer(
self,
autorun(() => {
console.log(self.mySlowMethod); // this simple method of making sure to access self.mySlowMethod keeps the slow getter alive. you can alternatively not console.log it and do something else with it if needed, just make sure to access it in an autorun
}),
);
},
})); i posted about it here also |
@cmdcolin - thank you so much! That's very useful insights. Also somewhat related to #2161, where the whole "observe it even if you don't do something with it" workaround keeps a computed value around. I like this idea a lot. I will keep it labeled as help/PR welcome, because I'd welcome a PR implementing something like this. Although I do wonder if that's something more appropriate in the MobX side of things. Maybe both projects trying an implementation will lead to a best case scenario. Really appreciate your time, and I'd welcome anyone reading this to reach out if they want to try implementing it. I am always happy to get people started contributing. |
Feature request
Support equivalent of
@computed({keepAlive: true})
.Note that
keepAlive
frommobx-utils
isn't the same. Since it causes the computed value to always be re-evaluated even there's no other observers.Is your feature request related to a problem? Please describe.
The lack of computed support make the friction of migrating from MobX to MST a lot higher.
And given that MST use a tree-like structure for managing states, arguably the chance of memory leak is even lower.
Are you willing to (attempt) a PR?
The text was updated successfully, but these errors were encountered: