개발/PHP

Livewire 한방 정리

희묭 2024. 4. 8. 17:54

라라벨을 설치하고 실행한다

composer create-project laravel/laravel:^11.0 example-app
php artisan serve

npm install
npm run dev

 

라이브와이어를 설치한다

composer require livewire/livewire

 

이제 준비가 끝났다.

 

 

1. 간단한 액션만들기

 

라이브와이어 오브젝트를 생성하는 artisan 명령어를 입력한다

Counter.php 와 counter.blade.php 가 생성된다

php artisan make:livewire counter

 

Counter.php

class Counter extends Component
{
    public $count = 1;

    public function increment($addValue)
    {
        $this->count = $this->count + $addValue;
    }

    public function render()
    {
        return view('livewire.counter');
    }
}

 

counter.blade.php

<div>
    Count: {{$count}}
    <button wire:click="increment(1)">+</button>
</div>

 

welcome.blade.php 파일을 다음과같이 수정한다

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <body>
        @livewire('counter')
    </body>
</html>

 

라이브와이어는 아래처럼 alphinJs 와 섞어서 사용이 가능하며 대부분의 경우 그렇게 사용하여야 한다

<div x-data>
    {{$count}}
    <p><button wire:click="increment">wire add</button></p>

    <p><label x-text="$wire.count"></label></p>
    <p><button x-on:click="$wire.count++">x local add</button></p>
    <p><button x-on:click="$wire.increment()">x add</button></p>
</div>

 

x local add 를 눌러서 카운트값을 증가시킨뒤 x add 를 누르면 로컬에서 증가된 값에서 업데이트가 이어지는걸 볼수있다.