如何在 Vue 文件中使用 Blade?

How can I use Blade in Vue files?

我正在尝试在我的 Vue 文件中使用 Blade carousel-signUp.vue

喜欢:

<template>
    <div>           
        <form action="{{route('dump')}}" method="POST" >
           /* Some code here...*/
        </form>
   </div>
</template>

但最后我得到了一个错误。

编译器无法理解 Vue 语法和 Blade 语法之间的区别。如何在 Vue 文件中定义 Blade 语法?

或者,有人知道如何在我的 vue 文件中使用 {{route('dump')}} 值吗?

您可以将“{{route('dump')}}”作为 prop 传递给组件。

<component route="/yourRouteHere"> </component>

https://vuejs.org/v2/guide/components.html#Props

米克

更好的解决方案可能是将所需的 blade 变量输出到(隐藏)html 和 select,即 Vue 代码中的 html。使用 @.

转义 Vue 的花括号

你的bladeexample.blade.php

<div id="content" hidden>
    {{ bladeVar }}
</div>

<div id="app">
    @{{ vueVar }}
</div>

那个 blade 的结果(它在缓存文件中的样子)+ javascript (Vue)

var app = new Vue({
    el: '#app',
    data: {
        vueVar: document.getElementById('content').innerHTML + 'from Vue'
    }
});
<script src="https://unpkg.com/vue"></script>
<div id="content" hidden>
    Hello world
</div>

<div id="app">
    {{ vueVar }}
</div>

我找到了a post having the same issue as you

您不能在您的 Vue 文件中使用 blade,但您可以使用 Vue 插槽,这样您就可以将 blade 文件中的内容发送到组件:

Vue文件

<template>
    <div>           
        <slot></slot>
    </div>
</template>

Blade

<carousel-sign-up>
    <form action="{{route('dump')}}" method="POST" >
        /* Some code here...*/
    </form>
</carousel-sign-up>

当您的组件应具有动态内容时,这将很有用。如果在那个组件中你只需要来自 blade 的路由并且表单将永远相同,请查看@Mick 答案。

您可以将数据解析为 Json,然后您可以将 blade 重定向到 vue Companent。我会在下面提到它。

<your-companent data={{$yourDataFromBackEnd}}></your-companent>

像这样,如果你有VueJs的经验,你可以在Vue中捕捉到“数据”。