将 Laravel 路由传递给 vue 组件

Posted

技术标签:

【中文标题】将 Laravel 路由传递给 vue 组件【英文标题】:Passing Laravel routes to vue components 【发布时间】:2018-06-20 13:12:25 【问题描述】:

我有一个index.blade.php,我在这个视图中包含了 vue 代码。 在正常情况下,我们会像这样通过 laravel 路由:

<a href="route('some-route')"> Link </a>

想象一下,我在这个 index.blade.php 中有一个主 vue 组件,我现在正在这样做:

@section('body')
    <router-view
        -- Props --
        prop1	 = "route('route1')"
        prop2	 = "route('route2')"
        prop3	 = "route('route3')"
        prop4    = "route('route4')"
        prop5    = "route('route5')"
        prop6    = "route('route6')"
        prop7    = "route('route7')"
        ...
    </router-view>
@endsection

我有很多路线想在我的 vue 组件中使用,我正在做这样的事情......

有时编写所有这些路线并使用道具等会令人沮丧。

有没有更好的方法来做到这一点?

谢谢:)

【问题讨论】:

【参考方案1】:

您可以使用 Route::getRoutes() 这将返回 RouteCollection,您可以这样做

$routeCollection = Route::getRoutes();

@section('body')
<router-view
    -- Props --
@foreach(Route::getRoutes() as $key => $route)
    prop $key  = " $route->getPath() "

</router-view>
@endsection

【讨论】:

感谢您的回答!但是有一点我忘了提,那就是道具(prop1,2,3 ...)是实际名称...例如:名称,动作,productUrl和...)我该如何处理? 你能在这里定义什么是 'name, productUrl' 吗? 不同的事情有不同的路线。例如定义一个产品,定义产品的属性和......因此有不同的路线具有唯一的名称。

以上是关于将 Laravel 路由传递给 vue 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从 Laravel 刀片传递给 vue 组件?

Laravel + Vue - 将多维 PHP 数组传递给 vue 组件

如何将 Laravel 数据(json)传递给 Vue 组件

无法将 Laravel 刀片文件中的道具传递给 Vue 组件

Vue - 通过路由器将道具传递给组件

Vue.js 组件中的 Laravel 路由链接?