Laravel & VueJS - 问题



我是VueJS的新手。

假设我计划创建一个广泛的应用程序。例如,我有 3 个单独的页面:mypage.com/account、mypage.com/players、mypage.com/orders。每个页面都有自己的控制器,在其中我返回一个带有视图(account.blade.php等(的文件,并在变量中传递参数。然后在它们中的每一个中,我想使用 Vue。在这里,我有几个问题:

1( 我是否需要在/resources/js/文件夹中为每个带有 Vue 实例的页面创建单独的 app.js 文件?像这样:

app-account.js

const app-account = new Vue({
el: '#app-account ',
});

app-players.js

const app-players= new Vue({
el: '#app-players',
});

等。?

如果没有 - 怎么做?在一个应用程序.js文件中声明所有组件?这是对的吗?因为当你在应用程序中输入 mypage.com/account 时.js/public/js/所有其他 Vue 组件中的文件都会被存储。因此,实际组件显示在页面上,所有组件都下载在页面上。

2( 为什么每个组件都必须是默认组件?

Vue.component('example-component', require('./components/ExampleComponent.vue').default);

3(当您不希望网站成为SPA时,如何正确使用Laravel+ Vue?

4( 所有数据都与视图一起传输是否正确?创建控制器仅用于显示视图并通过 Vue 从 api 下载数据更好吗?

5( 刀片模板系统的功能如何?

我可以通过{{路由('name'(}}显示指向其中路由的链接。在 Vue 中实现这一点的唯一方法是将参数传递给组件?这是正确的方法吗?

<example-component routeToXXX="{{route ('name')}}" />

欢迎来到 Vue 世界。

  1. 由于页面之间导航的 Laravel/PHP 会导致浏览器重新渲染 DOM,因此如果您选择分离应用程序文件或只是编写用<script>包装的内联 js(如果您这样做,请确保在脚本/延迟之前加载 vuejs(。如果你想让Laravel成为你的核心,你也可以考虑潜入直播线,或者你必须探索这个世界正在尝试什么: VUE2组件注册在Laravel中

  2. 这是一个Javacsript语法,基本上SFC(单文件组件(应该导出可以使用或加载的JS数据/对象/函数,Vue有一个明确的文档,试试吧。学习 Vue,让你学习 JS(建议:考虑学习基础知识,从了解同步、异步、循环、数据类型、函数、函数函数之间的区别开始(。

  3. 没有具体的方法,你必须遵循来实现你需要的东西或完成某些任务。无论如何,如果你的需求在你的职业生涯阶段通过你的解决方案得到满足,这可能是正确的方法。只要不断尝试并随着时间的推移来证明你的能力(查看其他人的代码/库会有所帮助(。

  4. 这是选择的问题,SSR(ServerSideRendering(通常用于您不想在前端公开逻辑或有安全问题的情况下。在某些情况下,您可以执行 API 调用以提高整体性能,例如分页或筛选器。但是,您的数据公开/隐私始终取决于您对用户进行身份验证的方式,每个 API 调用都必须要求提供有效的访问令牌,以确保后端满足凭据才能访问数据。凭借前端的经验,您将确信哪些是最佳实践。

  5. Laravel有一个刀片助手来忽略模板引擎(@verbatim,@endverbatim等(。将数据传递给您的 Vue 部分,如果它的内联脚本,您可以像在@verbatim部分中一样打开 php 标签。在其他情况下,如果你已经知道要传递 JS 的内容,则可以在刀片视图之间的某个位置定义一个全局变量,例如<script> var globalVar = { url1: "<?= route('name'); ?>", url2: "<?= route('name2'); ?>" } </script>,或者可以回显编码的 json,以便它呈现 JS 变量,如下所示var globalVar = <?= json_encode($yourVariable); ?>;

最后,PHP和JS都是两个不同的世界,旨在实现相似的语法。考虑松散耦合 API 和视图逻辑是一个重大决定,但从长远来看,它可能会带来丰厚的回报。

最新更新