Laravel @stack 在组件中
Laravel @stack in component
我在我的 Laravel 应用程序中创建了一个 tile 组件,它在几个页面上用于 display/link 食谱(注意:这不是 angular、vue 或反应成分)。
在我的 tile 组件中,我 "push" 一个 css 文件到一个名为 styles
:
的堆栈
@push('styles')
<link href="{{ mix('css/tile.css') }}" rel="stylesheet">
@endpush
在我的 head.blade.php
中输出 styles
堆栈:
@stack('styles')
每当我的组件是 called/rendered 时,tile.css
文件就会添加到我的 style
堆栈中。这就像一个魅力,我的瓷砖是根据我的 tile.css
文件设计的。唯一的问题是 tile.css
文件被多次添加到 styles
堆栈。
有没有办法 prevent/check 在 styles
堆栈中进行双重插入,或者我是否必须手动将 tile.css
文件添加到每个 page/blade 文件哪个tile组件是生成的?
我认为这是不可能的,但老实说,我看不出有任何使用它的意义。
事实上,您通常会创建多个 SASS 文件,然后使用 Laravel 混合将这些文件连接成单个文件,因此您不关心每个子页面需要 CSS 的哪一部分。您只是将所有 CSS 编译成单个文件,因此浏览器仅加载 CSS 一次,然后使用缓存中的文件。
pushonce
是在 Laravel 7 中引入的。
@pushonce('styles')
<link href="{{ mix('css/tile.css') }}" rel="stylesheet">
@endpush
我在我的 Laravel 应用程序中创建了一个 tile 组件,它在几个页面上用于 display/link 食谱(注意:这不是 angular、vue 或反应成分)。
在我的 tile 组件中,我 "push" 一个 css 文件到一个名为 styles
:
@push('styles')
<link href="{{ mix('css/tile.css') }}" rel="stylesheet">
@endpush
在我的 head.blade.php
中输出 styles
堆栈:
@stack('styles')
每当我的组件是 called/rendered 时,tile.css
文件就会添加到我的 style
堆栈中。这就像一个魅力,我的瓷砖是根据我的 tile.css
文件设计的。唯一的问题是 tile.css
文件被多次添加到 styles
堆栈。
有没有办法 prevent/check 在 styles
堆栈中进行双重插入,或者我是否必须手动将 tile.css
文件添加到每个 page/blade 文件哪个tile组件是生成的?
我认为这是不可能的,但老实说,我看不出有任何使用它的意义。
事实上,您通常会创建多个 SASS 文件,然后使用 Laravel 混合将这些文件连接成单个文件,因此您不关心每个子页面需要 CSS 的哪一部分。您只是将所有 CSS 编译成单个文件,因此浏览器仅加载 CSS 一次,然后使用缓存中的文件。
pushonce
是在 Laravel 7 中引入的。
@pushonce('styles')
<link href="{{ mix('css/tile.css') }}" rel="stylesheet">
@endpush