РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
89 of 274 menu

Директива @entangle

Директива @entangle используется в Blade-шаблонах компонентов Livewire для связывания публичного свойства компонента с переменной Alpine.js. Это позволяет синхронизировать данные между серверным компонентом Livewire и клиентским JavaScript-фреймворком Alpine в реальном времени. Директива принимает имя свойства компонента в качестве аргумента.

Синтаксис

<div x-data="{ alpineVar: @entangle('propertyName') }"> </div>

Пример

Давайте свяжем свойство $text компонента с переменной Alpine и выведем ее значение:

<?php namespace AppLivewire; use LivewireComponent; class Message extends Component { public $text = 'Hello'; public function render() { return view('livewire.message'); } } ?>
<div x-data="{ message: @entangle('text') }"> <p x-text="message"></p> </div>

Результат выполнения кода:

<div> <p>Hello</p> </div>

Пример

Изменим значение свойства через поле ввода с двусторонней привязкой:

<?php namespace AppLivewire; use LivewireComponent; class Message extends Component { public $text = 'Hello'; public function render() { return view('livewire.message'); } } ?>
<div x-data="{ message: @entangle('text') }"> <input type="text" x-model="message"> <p x-text="message"></p> </div>

Результат выполнения кода после ввода 'world':

<div> <input type="text" value="world"> <p>world</p> </div>

Пример

Свяжем массив свойств с переменной Alpine и отобразим его элементы:

<?php namespace AppLivewire; use LivewireComponent; class ListComponent extends Component { public $items = ['a', 'b', 'c', 'd', 'e']; public function render() { return view('livewire.list-component'); } } ?>
<div x-data="{ list: @entangle('items') }"> <ul> <template x-for="item in list" :key="item"> <li x-text="item"></li> </template> </ul> </div>

Результат выполнения кода:

<div> <ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> </ul> </div>

Смотрите также

  • директиву @livewire,
    которая вставляет компонент Livewire в шаблон Blade
  • директиву @livewireStyles,
    которая подключает CSS-стили Livewire
  • директиву @livewireScripts,
    которая подключает JavaScript-скрипты Livewire
  • директиву @script,
    которая выполняет JavaScript-код внутри компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить