【问题标题】:Laravel Blade: What is best practice for adding javascript in blade files?Laravel Blade:在刀片文件中添加 javascript 的最佳实践是什么?
【发布时间】:2019-04-19 06:11:17
【问题描述】:
我继承了一个 Laravel 项目,该项目有许多刀片文件,刀片文件中的标签内包含 javascript。问题是有很多重复的 JS 逻辑,所以我想提取 JS 并创建 JS 文件以包含在刀片中?示例:<script src="{{ asset('js/components/file.js')}}"></script>
这是刀片文件的最佳做法,还是预期在实际文件中包含 JS?
【问题讨论】:
标签:
laravel
laravel-blade
【解决方案1】:
首先,您必须指定要在布局中推送脚本的位置。例如,假设layout.blade.php 是您的主布局文件,并且您想在页脚之后注入代码。所以添加
@stack('scripts')
在页脚之后。
现在在您的刀片文件中,使用@push 注入您的代码。
@push('scripts')
<script>
// your code
</script>
@endpush
查看blade stack了解更多详情。
【解决方案2】:
只是想带来一些额外的信息,您也可以使用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
【解决方案3】:
我建议您为特定页面的 javascript 维护一个特定部分。
请参考以下示例..
示例模板.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