具有一个或多个Vue实例的Laravel应用

时间:2019-02-12 23:12:25

标签: laravel vue.js

免责声明:这不完全是一个编程问题,我正在征求您的意见。如果此帖子不属于此处,请告诉我,我将其删除。

我正在使用Laravel和VueJS计划一个相当大的应用程序。我的主要问题是最好的方法是什么?

该应用将涉及用户注册,登录,不同的用户角色和权限,个人资料页面等。

使用Laravel路由器加载页面并为每个页面创建多个Vue实例是一个好主意吗?也就是说,让一个Vue实例处理首页,让另一个Vue实例处理个人资料页面等?

还是创建一个具有多个组件的Vue实例并纯粹将Laravel用作API服务器更好?

您是否有任何教程或资源可以帮助我决定采用哪种方法?

如果您对此有意见,我将不胜感激。

感谢您阅读:)

===== 更新

感谢您的答复和您在此上花费的时间。我还有一个问题。可以说我决定使用MPA,并且我有1个Vue应用程序来处理一页,是否可以为每一页使用Vue路由器?例如 '/个人资料页面将由laravel呈现 / profile之后的所有内容均应由Vue'

处理

现在,如果我希望VueJS处理路由,则将其放入web.php

Route::get('/{any?}', function () {
    return view('vueentrypoint');
})->where('any', '[\/\w\.-]*');

我可以做类似的事情

Route::get('/profile/{any?}', function () {
    return view('profileentry');
})->where('any', '[\/\w\.-]*');

Route::get('/user/{any?}', function () {
    return view('userentry');
})->where('any', '[\/\w\.-]*');

1 个答案:

答案 0 :(得分:2)

如果在Laravel实例中需要多个实例,则应将具有多个Vue实例的应用程序分开。例如,您有一个电子商务Web应用程序,并且您有三个区域,它们分别是:

  • 客户信息中心:客户信息,愿望清单,交货信息,购买的物品,帮助票等。
  • 电子商务网站:首页,类别,列表,商品评论和购买商品
  • 工人仪表板:系统更新,新项目,新类别,新列表,帮助通知单视图等。

注意:也许客户仪表板和电子商务应用程序可以是其中之一,但我喜欢将客户仪表板与所有事物分开。

三个应用程序可以与三个Vue实例分开。最好只为一页创建新的Vue实例。

Route::get('/w/{any?}', 'SpaController@worker')->where('any', '.*')->name('spa.worker');
Route::get('/c/{any?}', 'SpaController@customer')->where('any', '.*')->name('spa.customer');
Route::get('{any}', 'SpaController@website')->where('any', '.*')->name('spa.website');