Skip to content
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

Preserving this identity (Vue 3) + tweaks #32

Open
wants to merge 15 commits into
base: feature/vue-3
Choose a base branch
from

Conversation

thecodewarrior
Copy link

This implements #29, #30, and #31. I'll update this branch as those issues are discussed

@davestewart
Copy link
Owner

BTW - sorry to let this go off the boil. Work has been particularly intense this last 6 weeks. I'm hoping to get some time on OSS again this week.

@thecodewarrior
Copy link
Author

No worries! It hasn't been blocking so far, the work on our project is still isolated to one experimental branch, so yarn link has been working fine.

@thecodewarrior
Copy link
Author

Updating the docs has taken a bit longer than expected, so this branch should be ready tomorrow

@thecodewarrior
Copy link
Author

So I think I can make VueStore in vue 3 work

  • with any class hierarchy
  • with full inheritance (e.g. any class extending a VueStore class is fully reactive)
  • with no extra prototype shenanigans

The one concession it requires is that it doesn't support "dynamic" watches or computed properties, because it the vue store will be injected "at some point" in he hierarchy, it'll only be able to (reliably) scan the prototype, not any values added at runtime.

@thecodewarrior
Copy link
Author

So doing it that way would be a breaking change, however I can make it fall back to the old behavior when used as a decorator, then discourage using that method in the documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants