첫번째 시나리오.
1. livewire 컴포넌트를 만든다.
2. input name 과 컴포넌트 변수명을 일치시킨다. wire:model
3. 클릭 이벤트를 실행시킨다. wire:click
4. 컴포넌트에서 함수를 실행시킨다.
5. css 의 hidden, disabled 와 연동이 가능하다.
livewire Component
1 # views/test/livewire/counter.blade.php
2 # blade 파일에 적용방법
3
4 < div class = " mx-auto text-center " >
5 < livewire:test.counter />
6 </ div >
livewire Component
1 # app/http/Livewire/Test/Counter.php
2
3 namespace App\Http\Livewire\Test;
4
5 use Livewire\ Component ;
6
7 class Counter extends Component
8 {
9
10 // 속성
11 public $count = 0 ;
12
13 // 랜더링
14 public function render () {
15 return view ( ' livewire.test.counter ' );
16 }
17
18 public function increment () {
19 $this ->count++ ;
20 }
21
22 function decrement () {
23 $this ->count-- ;
24 }
25 }
views
livewire 와 alpine 비교하기
1 # views/livewire/test/counter.blade.php
2
3 < div >
4 < h1 > Counter Sample : only livewire </ h1 >
5
6 < h1 >
7 {{ $count }}
8 </ h1 >
9
10
11 < button wire:click = ' decrement ' > 감소하기 </ button >
12 < button wire:click = ' increment ' > 증가하기 </ button >
13
14 </ div >
1 # views/livewire/test/counter.blade.php
2 // view 파일에서 동시에 적용해 봤는데.. 안된다. livewire 이든, apline 이든 하나만 사용해야 함.
3 // 동시에 적용하기 위해서는 @entangle () 을 사용해야 한다.
4
5 # views/livewire/test/counter.blade.php
6
7 < div >
8 < h1 > Counter Sample : alpinejs </ h1 >
9
10 < div x-data >
11 < h1 x-text = " $wire.count " ></ h1 >
12
13 < button @click ="$wire.decrement" > 감소하기 </ button >
14 < button @click ="$wire.increment" > 증가하기 </ button >
15 </ div >
16 </ div >
다음과 같이 코드를 변경하면 동시에 작동한다. @entangle('count')
1 < div >
2 < h1 > Counter Sample : only livewire </ h1 >
3
4 < h1 >
5 {{ $count }}
6 </ h1 >
7
8
9 < button wire:click = ' decrement ' > 감소하기 </ button >
10 < button wire:click = ' increment ' > 증가하기 </ button >
11
12 < div x-data = " {count : @entangle ( ' count ' )} " >
13
14 < h1 x-text = " $wire.count " ></ h1 >
15 < h1 x-text = " count " ></ h1 >
16
17 < button @click ="count--" > 감소하기 (count--) </ button >
18 < button @click ="count++" > 증가하기 (count++) </ button >
19
20 < br >< br >
21
22 < button @click ="$wire.decrement" > 감소하기($wire.decrement) </ button >
23 < button @click ="$wire.increment" > 증가하기($wire.increment) </ button >
24
25 </ div >
26
27 </ div >
Counter Sample
0
감소하기
증가하기
감소하기 (count--)
증가하기 (count++)
감소하기($wire.decrement)
증가하기($wire.increment)