Если в каждом элементе списка используется компонент модалки, как правило, он никогда не дублируется, а инициализируется каждый раз новым стейтом при нажатии на элемент списка. Но у вас редкий случай, нужно одновременно открывать несколько таких модалок, решение: используйте массив динамических компонентов.
При нажатии на элемент в списке, в массив компонентов заносится элемент с нужным названием и стейтом для инициализации, при закрытии модалки можете перехватывать событие и удалить компонент из этого массива.
<component
v-for="modal in array_of_modal"
:is="modal.component_name"
v-bind="modal.props">
</component>
array_of_modal: [
{
component_name: "component_name_1",
props: {}
},
{
component_name: "component_name_2",
props: {}
}
]