Livewire has supported (or tried to at least), VueJS since the beginning because of its popularity in the Laravel ecosystem.
I have made no secret that I think Livewire shouldn’t be used for all front-end interactions, but I haven’t been as clear on what the recommended JS approach/framework is.
I started building Project X to answer this question, and I still believe it will be a viable solution.
Here are the 3 options as I currently see them:
(These are taken from this GitHub issue)
A) Remove third-party library support from Livewire’s core and set a precedent of building plugins to add support (Vue, Turbolinks, Bootstrap’s JS part, Project X)
- Cleaner core (and more “extendable” architecture)
- Doesn’t favor or align with any specific front-end tech
- Provides a path for devs to create their own integrations and understand Livewire more fully
- Saves me time by allowing others to maintain integrations
B) Focus on supporting Vue out-of-the-box, as it’s the most popular in the Laravel ecosystem. (this was the original approach)
- Makes the easiest onboarding ramp
- Doesn’t require the dev to deal with installing and managing another dependancy
C) Provide a JavaScript framework solution (Project X)
- Could have deep integration with Livewire
- Would fit each other’s use-cases perfectly
- A bunch of other obvious wins
A gets my vote. I think we need to just decide on it and move forward. Starting with moving the Vue integration into a separate repository. But I want to hear everyone’s thoughts.
Thanks! (Also, thanks @mokhosh for getting the conversation started)