仅在添加到 blade 页面时导入 Vue 组件

Import Vue Component only when added to blade pages

我开始使用 Laravel、Vuejs 和模板引擎 blade 开发应用程序。
首先,我是 Vuejs 世界的新手,也许是一项简单的任务,但我没有在任何讨论中找到答案。
核心思想是使用 .blade 页面,当我需要 vuejs 组件时,将它们添加到页面中,通过 props 数组传递服务器的数据。一切正常,但在玩了一会儿之后,我注意到一个可能是未来的问题。
在 laravel 的文档中,我们在 app.js 中注册组件或任何 Vue 设置:然后,使用 laravel 混合,我们将所有代码(例如导入,需要,不同的 js 页面...),最后我们使用脚本标签在我们的页面中加载 "app.[hash].js"。我注意到即使只使用几个 vue 组件,app.js 增长得非常快(当然,我们将每个组件都导入到一个文件中),甚至是动态导入组件而不是全局设置它们。

我的问题是:将所有 js 代码绑定在一个文件(有一个大文件)中是正常的,或者只有当它们被添加到 .blade 文件中时才有办法导入 vue 组件,也许是某种 webpack(laravel 混合) 设置?

在此先感谢您的支持。

在 post 问题后找到解决方案:

Marcin 和 GoogleMac 的回答可能都是正确的,但我发现了一个有趣的话题,我想分享给任何可能遇到我的问题的人。我建议查看这个 link https://alexjoverm.github.io/2017/07/16/Lazy-load-in-Vue-using-Webpack-s-code-splitting/,他们在那里谈论代码拆分。 我认为这可能是最好的方法,主要是因为即使在 vue 的文档中也谈到了(这里有详细信息 https://vuejs.org/v2/guide/components.html#Async-Components)。 我的错误是没有详细检查文档。

最好将 js 代码捆绑在一个文件中,因为它只会被浏览器下载一次并缓存。

JavaScript 代码没有 大,所以不要为它烦恼。

我同意 Marcin 的回答,但如果您想要解决方法,请在 app.js 中注释掉 Laravel 的内置 Vue 注册,然后在您的 blade 中使用 cdn文件。

您可以添加多个 app.js(如果需要,包括多个 router, vuex)。 在 webpack.mix.js 上分别输入它们。 然后根据需要在 blade 文件中包含合适的 app.js 文件。 如果您不想与永远不会使用这些组件的任何用户共享一些 .js 代码,我认为这要容易得多。

注意:延迟加载当然是一种解决方案,但这对我来说更方便,因为我不会将任何组件交付给不需要它的用户。