Open hunterliu1003 opened 10 months ago
Make vue-final-modal@5.x support both Vue 2 and Vue 3
Why is this the aim? Vue 2 reached end of life at the end of last year so supporting it seems like a completely unnecessary overhead?
Make vue-final-modal@5.x support both Vue 2 and Vue 3
Why is this the aim? Vue 2 reached end of life at the end of last year so supporting it seems like a completely unnecessary overhead?
I just want to try it out and play with vue-demi
vue-final-modal@2 supports Vue 2, vue-final-modal@3 supports Vue 3 and their syntax is exactly the same.
But vue-final-modal@4 only supports Vue 3 and the syntax has breaking change. I understand that Vue 2 has reached end of life, but if the new syntax of vue-final-modal@5 can both support Vue 2 and 3, Vue 2 users can upgrade to vue-final-modal@5 before migrating to Vue 3 to reduce the complexity of migration.
After some research, vue-demi is not aimed at component compatibility but is purely logical composable. So if vue-final-modal@5 needs to support both Vue 2 and Vue 3, there may be a lot of duplicate code in the project. I'm not sure if it's worth it.
Does it still in progress? useTemplate looks great and looking forward to the custom dialog container. Thanks your contribution
与vue-router绑定?
Hi. What's the status of the 5.x? I just see a lot of potential places for performance improvements, like reducing the amount of WatchEffect. But I'm not sure if it's worth doing a PR for version 4 now, since a lot of things have already been changed in 5.
Also about Vue 2 support, it's clearly not worth it, I'd even say it's better to support Vue from 3.3+ to get toRef()
and toValue()
for getters.
It would be nice if the onBeforeClose()/onClosed() event provides more information on how the modal was closed (by clicking the overlay, esc key, swipe, useModal().close())
In nested modals, it would be nice if we could hide the parent modal so the child modal appears alone but when it is closed, the parent modal is shown again.
If multiple modals are open it would be good to have the option of automatically raising the z-index of the 'active' modal so it appears above other modals.
vue-final-modal@5
First of all, I would like to thank all users of vue-final-modal. I learned a lot through creating and maintaining this component library. I am planing to implement v5 recently. If you have any practical suggestions, please leave a message below.
Roadmap
Features
useDialog()
composable andVueFinalDialog
component based on<dialog />
, see #419~vue-use-template
that provideContainer
,useTemplate
, etc.[x]
useTemplate
composable, can be used to render components without using VueFinalModal.vue. For example:useTemplate
is useful if you want to define a modal yourself with<dialog>
element for example. see #419Breaking Change
[x] Rename API
useModalSlot()
todefineTemplate()
and support infinite recursive nested slots touseModal()
. For example:Compatibility
1. For Option API
vue-final-modal@2.x
is for Vue 2,vue-final-modal@3.x
is for Vue 3.2. For Composition API
vue-final-modal@4.x
introduce theuseModal()
composable and fully rewrite with Typescript.vue-final-modal@5.x
support both Vue 2 and Vue 3vue-demi
only because vue-final-modal is not only a composable library but also provide components. The easiest way might be having two split version, but this way I'll have to copy and paste a lot of same codes which I want to avoid. (I'm open to any suggestions)