Livewire PHP: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Livewire PHP: पूरी गाइड

1. यह क्या है और क्यों ज़रूरी है

Livewire Laravel के लिए एक पूर्ण-सुविधा वाली लाइब्रेरी है जो आपको JavaScript लिखे बिना डायनामिक और रिएक्टिव इंटरफ़ेस बनाने की सुविधा देती है। यह सर्वर-साइड पर काम करती है, DOM को अपडेट करने के लिए Alpine.js का उपयोग करती है, लेकिन सारा लॉजिक PHP में ही रहता है। यह उन डेवलपर्स के लिए एक आदर्श टूल है जो जटिल फ्रंटएंड फ्रेमवर्क में गहराई में जाए बिना तेज़ी से इंटरैक्टिव वेब एप्लिकेशन बनाना चाहते हैं।

Livewire का मुख्य उद्देश्य आधुनिक वेब इंटरफ़ेस के विकास को सरल बनाना है, जबकि परिचित Laravel दृष्टिकोण को बनाए रखना है। आप PHP में कंपोनेंट लिखते हैं, और Livewire स्वचालित रूप से AJAX अनुरोधों को संभालता है, DOM को अपडेट करता है और स्थिति का प्रबंधन करता है। यह विशेष रूप से फॉर्म, कंट्रोल पैनल, चैट और किसी भी अन्य इंटरैक्टिव तत्वों के लिए उपयोगी है।

यह लाइब्रेरी फ्रंटएंड और बैकएंड के बीच कोड डुप्लिकेशन की समस्या को हल करती है, जिससे डेवलपर्स WebSocket या जटिल JavaScript लाइब्रेरी सेटअप करने के बजाय एप्लिकेशन के लॉजिक पर ध्यान केंद्रित कर सकते हैं। Livewire उन प्रोजेक्ट्स के लिए एकदम सही है जहां विकास की गति और रखरखाव में आसानी महत्वपूर्ण है।

2. इंस्टॉलेशन

Livewire इंस्टॉल करने के लिए PHP के मानक पैकेज मैनेजर Composer का उपयोग करें। अपने Laravel प्रोजेक्ट की रूट डायरेक्टरी में निम्नलिखित कमांड चलाएँ:

composer require livewire/livewire

इंस्टॉलेशन के बाद Livewire स्वचालित रूप से अपने सर्विस प्रोवाइडर को रजिस्टर कर देगा। यदि आप Laravel 8 या उससे नए वर्जन का उपयोग कर रहे हैं, तो अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है। पुराने वर्जन के लिए config/app.php में निम्नलिखित जोड़ना पड़ सकता है:

'providers' => [
    // ...
    Livewire\LivewireServiceProvider::class,
];

साथ ही, सुनिश्चित करें कि आपके टेम्पलेट (आमतौर पर layouts/app.blade.php) में Livewire की स्क्रिप्ट और स्टाइल शामिल हैं:

@livewireStyles
</head>
<body>
    @livewireScripts
</body>

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

एक सरल काउंटर कंपोनेंट बनाते हैं। पहले artisan कमांड चलाएँ:

php artisan make:livewire counter

इससे दो फ़ाइलें बनेंगी: app/Http/Livewire/Counter.php और resources/views/livewire/counter.blade.php। PHP क्लास को एडिट करें:

<?php
namespace App\Http\Livewire;
use Livewire\Component;

class Counter extends Component
{
    public $count = 0;

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

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

और टेम्पलेट:

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

अब इस कंपोनेंट को किसी भी Blade व्यू में डालें:

<livewire:counter />

बस! बटन दबाने पर काउंटर बिना पेज रीलोड किए बढ़ जाएगा।

4. मुख्य तरीके/फंक्शन/क्लास

4.1. render()

सिग्नेचर: public function render(): View

विवरण: यह अनिवार्य तरीका है जो कंपोनेंट का Blade टेम्पलेट लौटाता है। हर बार रेंडर होने पर इसे कॉल किया जाता है।

public function render()
{
    return view('livewire.my-component', ['data' => $this->getData()]);
}

4.2. mount()

सिग्नेचर: public function mount(...$params): void

विवरण: कंस्ट्रक्टर के समान, यह कंपोनेंट के पहले रेंडरिंग पर केवल एक बार कॉल होता है। प्रॉपर्टीज को इनिशियलाइज़ करने के लिए उपयोग किया जाता है।

public $userId;
public $user;

public function mount($userId)
{
    $this->userId = $userId;
    $this->user = User::find($userId);
}

अनुशंसाएँ