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

标签 laravel vue.js

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

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

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

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

或者创建一个具有多个组件的 Vue 实例并使用 Laravel 纯粹作为 API 服务器更好?

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

如果您对此发表看法,我将不胜感激。

感谢您的阅读:)

===== 更新

感谢您的回复以及您为此花费的时间。我还有一个问题。假设我决定使用 MPA 并且我有 1 个 Vue 应用程序来处理一个页面,是否可以为每个页面使用 Vue 路由器?例如 '/profile页面将由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\.-]*');

最佳答案

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

  • 客户信息中心:客户信息、愿望 list 、送货信息、购买的商品、帮助请求等。
  • 电子商务网站:主页、类别、列表、商品评论和购买商品
  • 工作人员仪表板:系统更新、新项目、新类别、新列表、帮助票 View 等。

注意:也许客户仪表板和电子商务应用程序可以合二为一,但我喜欢将客户仪表板与所有内容分开。

这三个应用程序可以用三个 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');

关于具有一个或多个 Vue 实例的 Laravel 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660082/

相关文章:

Laravel 5.4 验证规则 - 可选,但如果存在则验证;

vue.js - VueJs组件名称保留字?

javascript - 如何更改根组件中的数据?

Vue.js 通过 httpVueLoader 传递数据

javascript - VueJS "RangeError: Maximum call stack size exceeded"

php - 不推荐将声明复制为 header ,并将从 v4.0 中删除 - Laravel Passport Problem in lcobucci/jwt 包

php - 在do…while循环中,允许的内存大小为134217728字节,已用尽(尝试分配31989760字节)

php - 如何处理配置中的数组? (拉维尔)

php - 在 Laravel 中获取表单输入值

javascript - 按钮不响应 DOM cssStyleDeclaration