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

Атрибут :prop

Атрибут :prop в Livewire используется для передачи данных из родительского компонента в дочерний. Он аналогичен передаче обычных свойств в Blade-компоненты, но с той разницей, что данные автоматически синхронизируются с состоянием родительского компонента. В качестве значения указывается имя свойства родительского компонента, перед которым ставится двоеточие для динамической передачи.

Синтаксис

<livewire:child-component :prop="$parentProperty" />

Пример

Давайте создадим родительский компонент с числом $num и передадим его в дочерний компонент через атрибут :prop:

<?php namespace AppLivewire; use LivewireComponent; class ParentComponent extends Component { public $num = 10; public function render() { return view('livewire.parent-component'); } } ?>
<div> <h3>Parent component</h3> <p>num: {{ $num }}</p> <livewire:child-component :prop="$num" /> </div>
<?php namespace AppLivewire; use LivewireComponent; class ChildComponent extends Component { public $prop; public function render() { return view('livewire.child-component'); } } ?>
<div> <h4>Child component</h4> <p>prop: {{ $prop }}</p> </div>

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

<div> <h3>Parent component</h3> <p>num: 10</p> <div> <h4>Child component</h4> <p>prop: 10</p> </div> </div>

Пример

Передадим в дочерний компонент массив данных:

<?php namespace AppLivewire; use LivewireComponent; class ParentComponent extends Component { public $items = [1, 2, 3, 4, 5]; public function render() { return view('livewire.parent-component'); } } ?>
<div> <h3>Parent component</h3> <livewire:child-component :prop="$items" /> </div>
<?php namespace AppLivewire; use LivewireComponent; class ChildComponent extends Component { public $prop; public function render() { return view('livewire.child-component'); } } ?>
<div> <h4>Child component</h4> <ul> @foreach ($prop as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

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

<div> <h3>Parent component</h3> <div> <h4>Child component</h4> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div> </div>

Пример

Передадим строковое значение из родительского компонента:

<?php namespace AppLivewire; use LivewireComponent; class ParentComponent extends Component { public $text = 'abcde'; public function render() { return view('livewire.parent-component'); } } ?>
<div> <h3>Parent component</h3> <livewire:child-component :prop="$text" /> </div>
<?php namespace AppLivewire; use LivewireComponent; class ChildComponent extends Component { public $prop; public function render() { return view('livewire.child-component'); } } ?>
<div> <h4>Child component</h4> <p>prop: {{ $prop }}</p> </div>

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

<div> <h3>Parent component</h3> <div> <h4>Child component</h4> <p>prop: abcde</p> </div> </div>

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить