Laravel Blade:在刀片文件中添加JavaScript的最佳实践是什么?

时间:2019-04-19 06:11:18

标签: laravel laravel-blade

我继承了一个Laravel项目,该项目包含许多刀片文件,刀片文件中包含javascript内部标签。问题是,有很多重复的JS逻辑,所以我想提取JS并创建要包含在刀片中的JS文件?示例:<script src="{{ asset('js/components/file.js')}}"></script>  这是刀片服务器文件的最佳实践,还是应该在实际文件中包含JS?

3 个答案:

答案 0 :(得分:1)

首先,您必须指定要在布局中推送脚本的位置。例如,假设layout.blade.php是您的主要布局文件,并且您想在页脚后插入代码。因此添加

@stack('scripts')

在页脚之后

现在在刀片文件中,使用@push注入代码。

@push('scripts')
<script>
// your code
</script>
@endpush

检查blade stack以获得更多详细信息。

答案 1 :(得分:1)

只是想带来一些额外的信息,您也可以使用 defer 属性。 在这里使用 Laravel 8,在 webpack.mix.js

mix.js('resources/js/app.js', 'public/js')
   .js('resources/js/my-super-amazing-script.js', 'public/js')

在您的主 my-layout.blade.php 中:

...
    @yield('javascript')
</body>

然后,在您的特定页面中:

@extend('my-layout.blade.php')
...
@section('javascript')
    <script src="{{ mix('js/my-super-amazing-script.js') }}" defer></script>
@endsection

答案 2 :(得分:0)

我建议您维护针对特定页面的javascript的特定部分。

请参考以下示例。

示例template.blade.php

  <body>

    @yield('content')

    @include('_partial.scripts')

    @yield('page-script')

    @include('_partial.footer')

</body>

然后

@section('page-script')
<script type="text/javascript">
    // your custom script
</script>
@stop