Livewire 是讓後端也可以很輕鬆做前後端溝通與互動的套件,我們透過實作看看他有多好用。

首先在專案利用 composer 安裝 livewire:

composer require livewire/livewire

 

接著透過指令建立 livewire 的 component:

php artisan make:livewire counter

 

上述指令會產生兩個檔案:

  • app/Http/Livewire/Counter.php
  • resources/views/livewire/counter.blade.php

 

Counter.php 會長這樣:

namespace App\Http\Livewire;

use Livewire\Component;

class Counter extends Component
{
    public function render()
    {
        return view('livewire.counter');
    }
}

 

而 counter.blade 那邊目前則是空的。

在要讀入 livewire component 的像這樣讀入:

<head>
    ...
    @livewireStyles
</head>
<body>
    <livewire:counter />

    ...

    @livewireScripts
</body>
</html>

 

在 Counter 那隻增加變數以及事件:

class Counter extends Component
{
    public $count = 0;

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

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

 

這邊就設計一個 function,執行後會讓 count++ 這樣,然後再修改 counter.blade:

<div>
    <button class="btn btn-info" wire:click="increment">+</button>
    <h1>{{ $count }}</h1>
</div>

 

這樣就能看到你放 component 的地方,有一個按鈕點了會加總了。