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

Директива @this

Директива @this в Blade-шаблоне Livewire предоставляет доступ к JavaScript-объекту текущего компонента. Она позволяет вызывать методы компонента, получать доступ к его свойствам и выполнять другие операции прямо из JavaScript-кода, встраиваемого в шаблон.

Синтаксис

<script> @this.methodName(); @this.property; </script>

Пример

Давайте создадим компонент с числом $num и методом inc, а затем вызовем этот метод через директиву @this по клику на кнопку:

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public $num = 0; public function inc() { $this->num++; } public function render() { return view('livewire.counter'); } } ?>
<div> <button onclick="@this.inc()"> + </button> <span>{{ $num }}</span> </div>

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

<button> + </button> <span>1</span>

Пример

Директива @this также позволяет получать значения свойств компонента. Выведем текущее значение свойства $num в консоль при загрузке страницы:

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public $num = 10; public function render() { return view('livewire.counter'); } } ?>
<div> <span>{{ $num }}</span> <script> console.log(@this.num); </script> </div>

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

"10"

Пример

Можно использовать @this для вызова методов с передачей параметров. Создадим метод setNum, принимающий значение, и вызовем его из JavaScript:

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public $num = 0; public function setNum($value) { $this->num = $value; } public function render() { return view('livewire.counter'); } } ?>
<div> <span>{{ $num }}</span> <button onclick="@this.setNum(100)"> Set 100 </button> </div>

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

<button> Set 100 </button> <span>100</span>

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

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