【问题标题】: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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-04
          • 2017-06-28
          • 2021-05-06
          • 2017-07-04
          • 2010-10-15
          • 2018-08-26
          • 2016-07-26
          相关资源
          最近更新 更多