You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Blade视图的Javascript脚本中读取Livewire组件的公共变量值

Livewire组件公共变量JS获取方案

你可以根据使用场景选择以下两种实现方式:

方案1:Blade直接插值(静态取值,无需后续同步)

Blade渲染阶段会直接把PHP公共变量的值输出到JS代码中,写法最简单,适合不需要跟随组件状态更新的场景:

<script>
    // 数字/布尔类型可直接输出,字符串类型需要额外包裹引号:var data = "{{ $data }}"
    var data = {{ $data }};
    console.log(data);
</script>

注意:该方式输出的值是页面首次渲染时的固定值,后续点击按钮触发$data更新为100时,JS变量不会自动同步。


方案2:Livewire JS API取值(支持动态同步状态)

如果需要实时获取组件更新后的最新$data值,使用Livewire提供的官方JS API操作即可,你之前写法的问题在于没有调用get()方法读取属性:

基础主动取值

<script>
    // Livewire 2版本用livewire:load事件,Livewire 3版本替换为livewire:init
    document.addEventListener('livewire:load', function () {
        // 调用get方法传入属性名读取公共变量
        var data = @this.get('data');
        console.log(data);
    })
</script>

监听变量自动更新

如果需要$data每次变更都触发JS逻辑,可以追加状态监听:

<script>
    document.addEventListener('livewire:load', function () {
        // 初始取值
        let data = @this.get('data');
        console.log('初始值:', data);

        // 监听$data属性变化
        Livewire.on('data', newValue => {
            data = newValue;
            console.log('更新后的值:', data);
        })
    })
</script>

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 16:24:07