Hacker News new | ask | show | jobs
by alichapman 1772 days ago
I think my favourite thing about Vue 3 and the composition API is that VueX is essentially obsolete - you can manage your global state by calling real life functions.

This means instead of doing `dispatch("action")` you just call `action()`.

When using Typescript this is a godsend, as the action functions keep all of their type information.

3 comments

I recently found Pinia[1] as replacement for vuex.

- full typing

- real life functions

- vue dev plugin support in store section

- mutations don't exist as separate idea

- also has api, so i wrote little plugin for state synchronization with local storage.

*Typography fix

1. https://pinia.esm.dev/

Wow. That's exactly what I thought Vuex would look like after after the Vue 3 release.

Definitely going to use it for my future project.

Just know what you're getting into, this is a new rather unknown framework with much fewer users and resources than Vue with VueX.
Read the docs, its from a Vue core team member and based on a future version of Vuex so you can easily migrate.
This is great. I feel the urge to delete all the brittle vuex crap from my vue3 ts projects right now.
Agreed. I do miss the devtool support of vuex though, but there is an RFC for a vuex 5 which will remedy that by fully embracing the composition API.

https://github.com/kiaking/rfcs/blob/vuex-5/active-rfcs/0000...

I'm the other way, as in the composition API has not clicked yet for me.

I read the doc and it makes sense but once in my project, I fail to see why I would use it, and yes I use vuex.

I probably need to make a Vue3 project from scratch without vuex to get it.