Creación de un cuadro de diálogo de confirmación con Livewire: una guía paso a paso

Nkenganyi Clovis Free Resources Dec 26, 2023

Livewire es un marco completo para Laravel que simplifica la creación de interfaces dinámicas sin salir de Laravel.

La capacidad de crear cuadros de diálogo de confirmación con poco o ningún código y sin JavaScript es una de las características de Livewire.

Lo guiaré a través del proceso de creación de un cuadro de diálogo de confirmación usando Livewire en unos simples pasos en esta publicación de blog usando la nueva directiva HTML 'wire:confirm' que hace que sea más fácil que nunca agregar un cuadro de diálogo de confirmación antes de realizar una tarea importante o acción peligrosa.

Instalar Livewire

Para usar Livewire, debes instalarlo en tu proyecto Laravel. Puedes hacer esto ejecutando el siguiente comando en tu terminal:

composer require livewire/livewire

Esto instalará Livewire como una dependencia y publicará sus activos y archivos de configuración.

Create Amazing Websites

Con el mejor generador de páginas gratuito Elementor

Empezar ahora

Opcionalmente, también puede ejecutar el siguiente comando" php artisan livewire:publish --config "para publicar el archivo de configuración de Livewire, que le permite personalizar algunas de las configuraciones.

Usar el nuevo cable:confirmar hace que agregar el cuadro de diálogo de confirmación a su aplicación sea muy fácil.

Puede utilizar wire:confirm para obtener una confirmación sencilla que tenga un botón "Cancelar" y "Aceptar", junto con un evento como wire:click:

<div>
    <h2>Danger zone</h2>
    <button
        type="button"
        wire:click="delete"
        wire:confirm="Are you sure you want to delete this project?"
    >
        Delete this project
    </button>
</div>

Livewire iniciará una ventana emergente de confirmación del navegador nativo cuando haga clic en el botón.

Las cosas se vuelven un poco más interesantes si le pides al usuario que ingrese algo para verificar que quiere hacer algo catastrófico a propósito.

<div>
    <h2>Danger zone</h2>
    {{-- ... --}}
    <button
        type="button"
        wire:click="delete"
        wire:confirm.prompt="Are you sure?\n\nType DELETE to confirm|DELETE"
    >
        Delete this project
    </button>
</div>

'|DELETE' le permite a Livewire saber el mensaje esperado que coincida.

Cuando se hace clic en el botón, aparecerá un modal ' prompt() ' que le pedirá al usuario que escriba "ELIMINAR". Si la entrada del usuario corresponde, se llamará al método ' delete() ' del componente Livewire.

La palabra o frase de confirmación se podría cambiar para reflejar un valor dinámico en el componente. Por ejemplo, es posible que desee solicitar al usuario que proporcione el nombre del proyecto para verificar:

Pensé que poner todo en mayúsculas sería lo más fácil porque hay una advertencia: la coincidencia de texto distingue entre mayúsculas y minúsculas. Debe utilizar entidades HTML en el atributo ' wire:confirm ' si desea utilizar comillas como lo estoy demostrando.

<div>
    <h2>Danger zone</h2>
    {{-- ... --}}
    <button
        type="button"
        wire:click="delete"
        wire:confirm.prompt="Are you sure?\n\nType &quot;{{ str($project_name)->upper() }}&quot; to confirm|{{ str($project_name)->upper() }}"
    >
        Delete this project
    </button>
</div>

¿Por qué debería utilizar la directiva HTML 'wire:confirm' de Livewire?

Si está buscando una manera simple y efectiva de agregar un cuadro de diálogo de confirmación antes de realizar una acción importante o peligrosa en su página web, debería considerar usar la directiva HTML wire:confirm .

Esta directiva es parte del marco Livewire, que es una biblioteca que facilita la creación de aplicaciones web dinámicas e interactivas utilizando Laravel.

La directiva wire:confirm le permite especificar un mensaje que se mostrará en un modo de navegador nativo cuando el usuario haga clic en un elemento que tiene una acción Livewire adjunta.

Por ejemplo, si tiene un botón que elimina un registro de la base de datos, puede agregar wire:confirm="¿Está seguro de que desea eliminar esto?" al elemento del botón, y el usuario verá un cuadro de diálogo pidiéndole que confirme su acción antes de que se active la acción Livewire.

De esta manera, puede evitar que se produzcan acciones accidentales o maliciosas y brindar más contexto y claridad al usuario sobre lo que está haciendo.

La directiva wire:confirm tiene varias ventajas sobre otros métodos para agregar cuadros de diálogo de confirmación, como el uso de JavaScript o componentes personalizados.

En primer lugar, utiliza el modo ' Window.confirm ' del navegador nativo, que es simple y consistente en diferentes navegadores y plataformas.

No tienes que preocuparte por problemas de estilo, compatibilidad o rendimiento.

En segundo lugar, es muy fácil de usar y requiere un código mínimo.

Sólo tienes que añadir la directiva y el mensaje al elemento, y Livewire se encargará del resto.

En tercer lugar, se integra perfectamente con el marco Livewire, lo que significa que puede usarlo con cualquier acción Livewire, como wire:click , wire:submit o wire:model .

Conclusión

La directiva wire:confirm es una gran herramienta para agregar cuadros de diálogo de confirmación a su página web. Es simple, eficaz y cómodo de usar.

Puede ayudarle a mejorar la experiencia del usuario y la seguridad de su aplicación web.

Si desea obtener más información sobre la wire:confirm y el marco Livewire, puede visitar la documentación oficial o el repositorio de GitHub.

Espero que esta nota te haya convencido de darle una oportunidad. 😊

Divi WordPress Theme