仅在添加到刀片页面

时间:2017-09-19 11:35:08

标签: javascript laravel vue.js components blade

我开始使用Laravel,Vuejs和Blade为模板引擎开发应用程序 首先,我是Vuejs世界的新人,也许是一个简单的任务,但我在任何讨论中都找不到答案。
核心思想是使用.blade页面,当我需要vuejs组件时,将它们添加到使用props数组传递服务器数据的页面中。一切都运转良好,但经过一段时间的游戏后,我注意到了一个可能存在问题的问题。
在laravel的文档中,我们在app.js中注册组件或任何Vue设置:然后,使用laravel mix,我们在单个文件中绑定所有代码(例如,导入,需要,不同的js页面......),最后我们在页面中加载了“app。[hash] .js”和脚本标记。我注意到即使只使用一些vue组件,app.js也会快速增长(当然,我们将每个组件导入一个文件中),甚至是dinamically导入组件而不是全局设置。

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

提前感谢您的支持。

发布问题后找到解决方案:

Marcin和GoogleMac的答案可能都是正确的,但我发现了一个有趣的话题,我想分享给任何人都可以解决我的问题。我建议查看此链接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)。 我没有检查详细的文件,这是不好的。

3 个答案:

答案 0 :(得分:1)

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

JavaScript代码不是 那么大,所以不要为此烦恼。

答案 1 :(得分:0)

我同意Marcin的回答,但是如果你想要一个解决方法,请在app.js中注释Laravel内置的Vue注册,并在你的刀片文件中使用cdn。

答案 2 :(得分:0)

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

NB:当然,延迟加载是一种解决方案,但是对我来说这是更方便的解决方案,因为我不会向不需要它的用户提供任何组件。