У меня есть веб-приложение с несколькими инструментами. Например, docx-to-pdf, pdf-to-docx и т. Д. c ... каждый представляет собой файл модуля vue в приложении.
Когда пользователь переходит к инструменту docx-to-pdf , загружает файл с использованием dropzone, файловый менеджер сервера сгенерирует uuid (я называю это идентификатором сеанса модуля) и использую его в качестве имени каталога, чтобы поместить загруженный файл и вернуть uuid в браузер. Затем, когда пользователь нажимает кнопку «конвертировать», uuid отправляется с помощью команды «конвертировать», и сервер выполняет преобразование и позволяет пользователю загрузить преобразованный файл.
Это работает нормально, пока у меня не появится Инструмент называется Combine-PDF и 2 капли на странице. Когда я загружаю file1 в dropzone1 и file2 в dropzone2 одновременно, каждый переходит в свой каталог, потому что файловый менеджер сервера считает, что это первый загружаемый файл. Если я не завершу загрузку файла file1, прежде чем запустить file2, в противном случае, когда я попытаюсь нажать на кнопку «Объединить», на сервере будет только один из двух uuids, и он попытается объединиться, но найдет только один файл.
самое логичное решение, которое я могу придумать, - это сгенерировать uuid в Vue, и когда я загружаю файлы на сервер, он проверяет, что это правильный uuid, и использует его на протяжении всего сеанса в этом модуле. Я могу поставить это созданный Vue хук. Это нормально, но я считаю, что когда я или мои товарищи по команде добавляем модули, мы продолжаем повторять один и тот же код в каждом модуле, который кажется повторяющимся.
Есть ли место, где я могу сгенерировать этот uuid и в конечном итоге передать его данные модуля, поэтому он записывается один раз, но каждый модуль получает новый uuid?
Я думал о том, чтобы иметь родительский модуль для всех этих инструментальных модулей, и в этом родительском модуле я выполнил бы это поколение uuid в его созданном хуке, но это загружается только один раз, а не каждый раз, когда я посещаю модуль.