--- title: "Laravel Livewire: A Full-stack Framework for Laravel" url: "https://live-krishaweb.pantheonsite.io/blog/laravel-livewire-a-full-stack-framework-for-laravel/" date: "2020-07-28T10:03:23+00:00" modified: "2024-06-17T09:27:47+00:00" type: "Article" resource: "https://live-krishaweb.pantheonsite.io/blog/laravel-livewire-a-full-stack-framework-for-laravel/" timestamp: "2024-06-17T09:27:47+00:00" author: name: "Nirav" url: "https://www.krishaweb.com" categories: - "Web Development" tags: - "FullStack Framework" - "Laravel" - "Laravel Livewire" - "Livewire" word_count: 773 reading_time: "4 min read" summary: "Livewire is a full-stack framework for Laravel framework that makes building dynamic interfaces simple, without leaving the comfort of Laravel." description: "Laravel Livewire is a full-stack framework for Laravel that makes building dynamic interfaces simple. Let\'s see its magic with an example of Form here..." keywords: "Laravel Livewire, FullStack Framework, Laravel, Livewire" language: "en" schema_type: "Article" related_posts: - title: "15 Reasons Why Laravel is Best for Web App Development" url: "https://live-krishaweb.pantheonsite.io/blog/why-laravel-is-best-for-web-app-development/" --- # Laravel Livewire: A Full-stack Framework for Laravel _Published: Tuesday,July 28, 2020_ _Author: Nirav_  Livewire is a full-stack framework for Laravel framework that makes building dynamic interfaces simple, without leaving the comfort of Laravel. If you are using livewire with Laravel then you don’t worry about writing jquery ajax code, livewire will help to write very simple way jquery ajax code using PHP without page refresh Laravel validation will work, the form will submit etc. **Laravel Livewire release adds the following:** - Turbolinks integration - Alpine JS integration - Support for wire:model listening for “input” events dispatched by AlpineJS: $dispatch(‘input’, ‘foo’) - Support for wire:custom-event=”foo” receiving params from an AlpineJS dispatch: $dispatch(‘custom-event’, ‘bar’). - Livewire custom-tag syntax ### What does the Laravel Livewire do? - Livewire renders the initial component output with the page (like a Blade include), this way it is SEO friendly. - When an interaction occurs, Livewire makes an AJAX request to the server with the updated data. - The server re-renders the component and responds with the new HTML. - Livewire then intelligently mutates DOM according to the things that changed. To get started please follow below link : https://laravel-livewire.com/docs/quickstart 1. **Install Laravel 7** First of all, we need to create a Laravel 7 version application using bellow command: ``` composer create-project --prefer-dist laravel/laravel idea ``` 2. **Create Migration and Model** Now we will create migration and model for it ``` php artisan make:migration create_ideas_table ``` ``` bigIncrements('id'); $table->string('text'); $table->text('description'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('ideas'); } } php artisan migrate ``` Now we will create Idea model by using the following command: ``` php artisan make:model Idea composer require livewire/livewire ``` 4. **Create Component** Now create livewire form component using bellow command.php artisan make:livewire idea-form Now they created files on both path: app/Http/Livewire/IdeaForm.php resources/views/livewire/idea-form.blade.phpNow both file we will update as bellow for our idea us form.app/Http/Livewire/IdeaForm.php ``` validate([ 'text' => 'required|min:6', 'description' => 'required', ]); Idea::create($validatedData); return redirect()->to('/form'); } public function render() { return view('livewire.idea-form'); } } resources/views/livewire/idea-form.blade.php
``` 5. **Create Route** Now create route for our form. ``` routes/web.php Route::get('/form', function () { return view('form'); }); ``` 6. **Create View File** Now we will create blade file which is used in our route. In this file we will use @livewireStyles for styles, @livewireScripts for scripts and @livewire(‘idea-form’) for form tag.resources/views/form.blade.php