Сделал видео, демонстрирующее суть проблемы:
https://i.gyazo.com/ac55fcaefcd9f81907beb80a0bd153b8.mp4Проблема в том, что wire:loading включается во время начала http-запроса к экшну.
Если у нас 1. медленный интернет и 2. на странице есть форма с wire:model , то livewire ждёт, пока закончится http-запрос, который сохраняет содержимое поля на сервер, и только потом рисует лоадер. Получаем лаг между нажатием на кнопку и отображением спиннера. Если интернет быстрый, то этого заметить как правило не удаётся, но всё равно рано или поздно замечаешь, что в некоторых моментах UI странно тупит и это со временем может подбешивать.
Я это увидел сразу, потому что работаю на винде, где php работает медленно и страницу отдаёт за сотни милисекунд. Почему этого не увидели остальные, многие сидят на маке и докере, где ситуация ещё даже похуже - для меня загадка. 2.0, а ситуация не исправлена.
Я решил проблему при помощи alpine.js , как на второй кнопке - не юзаю wire:loading, а спиннер показываю по альпайновскому
@click , в экшне livewire делаю dispatchBrowserEvent с определённым именем и по x-on его гашу спиннер. Но это "если вот так не болит, то так и ходите". Писать этот код от кнопки к кнопке уже задалбывает. Пойду делать иссую.