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

Действие $js

Действие $js в Livewire предоставляет возможность выполнять произвольный JavaScript-код непосредственно внутри компонента. Это действие чаще всего используется для вызова клиентских функций, манипуляций с DOM, выполнения анимаций или интеграции со сторонними JavaScript-библиотеками. В отличие от директив, $js вызывается из метода компонента на серверной стороне и выполняется на клиенте после обновления.

Синтаксис

В методе компонента вызывается $this->js с передачей JavaScript-кода в виде строки:

<?php namespace AppLivewire; use LivewireComponent; class Example extends Component { public function someMethod() { $this->js("alert('Hello from Livewire!')"); } public function render() { return view('livewire.example'); } } ?>

Пример

Давайте создадим компонент, который при клике на кнопку выводит уведомление через JavaScript:

<?php namespace AppLivewire; use LivewireComponent; class Notification extends Component { public function showMessage() { $this->js("alert('Кнопка нажата!')"); } public function render() { return view('livewire.notification'); } } ?>
<div> <button wire:click="showMessage"> Показать уведомление </button> </div>

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

<div> <button> Показать уведомление </button> </div> "alert('Кнопка нажата!')"

Пример

Выполним более сложный JavaScript-код, который меняет цвет фона элемента:

<?php namespace AppLivewire; use LivewireComponent; class ColorChanger extends Component { public $color = '#ffffff'; public function changeColor() { $colors = ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff']; $randomColor = $colors[array_rand($colors)]; $this->color = $randomColor; $this->js(" document.getElementById('color-box').style.backgroundColor = '$randomColor'; "); } public function render() { return view('livewire.color-changer'); } } ?>
<div> <div id="color-box" style="width: 200px; height: 200px; background-color: {{ $color }}; border: 1px solid #ccc;"> </div> <button wire:click="changeColor"> Сменить цвет </button> </div>

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

<div> <div id="color-box" style="width: 200px; height: 200px; background-color: #ff0000; border: 1px solid #ccc;"> </div> <button> Сменить цвет </button> </div>

Пример

Выполним JavaScript-код с передачей данных из компонента:

<?php namespace AppLivewire; use LivewireComponent; class UserGreeting extends Component { public $name = 'Гость'; public function greet($name) { $this->name = $name; $this->js(" alert('Привет, ' + '$name' + '!'); "); } public function render() { return view('livewire.user-greeting'); } } ?>
<div> <p>Имя: {{ $name }}</p> <button wire:click="greet('Алексей')"> Поприветствовать </button> </div>

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

<div> <p>Имя: Алексей</p> <button> Поприветствовать </button> </div> "alert('Привет, Алексей!')"

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

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