首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有多页Rails 6应用程序的VueJS -布局

带有多页Rails 6应用程序的VueJS -布局
EN

Stack Overflow用户
提问于 2021-04-27 19:39:27
回答 2查看 624关注 0票数 4

我有一个很难在网上找到信息的问题。我已经使用webpacker成功地将VueJS安装到Rails 6应用程序中,并在我的应用程序布局文件中注册了一个很好的根组件:

代码语言:javascript
运行
复制
<!-- application.html.erb -->
<!-- javascript pack tags loaded in head and my app component displays the template properly -->
<div id="vue-app-root">
    <app></app>
</div>

我知道,在单页应用程序中,VueJS应用程序在访问网站时只初始化一次,然后发出异步请求,而视图/模板更改则由VueJS发起--这一切都是有意义的。我的问题是,vue应用程序初始化应该如何与多页应用程序一起工作。

该应用程序是否在每次重新加载/涡轮链接加载时都完全初始化?如果我只是在不同的页面中到处使用几个组件,那么我会继续在每次加载页面时初始化整个VueJS应用程序,然后,然后再使用组件吗?如果是的话,应该在application.html.erb中的body标记(或根元素)上初始化Vue JS应用程序,还是应该仅在具有组件的页面上初始化应用程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-14 16:23:49

您需要找出什么是您的路由- Vue或Rails?

如果是Rails,那么是的,Vue应用程序需要在每次加载页面时重新挂载。这适用于您是否使用Turbo/Turbolinks,只要Vue应用程序在获取的部分。如果获取的部分位于Vue容器之外,并且使用Turbo/Turbolinks,则Vue应用程序将不会被重新加载。即使是在客户端上生成水合物的服务器呈现的Vue也是如此。

如果是Vue执行路由,Rails可能不会这样做,否则Vue应用程序将始终被重新加载。

票数 1
EN

Stack Overflow用户

发布于 2021-05-14 16:21:02

对于@sjaustirni的回答,我要补充的是,取决于您是否想使用Rails集成路由,您可以拆分这两个代码基。我的意思是:如果您只使用Rails作为API而不是它的路由,那么您应该将Vue项目放在它自己的repo中,而不是将两者混合在一起。

当然,如果您使用Rails的路由,那么将两者保持在同一个位置是有意义的。

此外,我想分享vue-turbolinks的存在,这在您的情况下可能是有用的,特别是如果使用Hotwire的话。

这是一个视频解释:https://gorails.com/episodes/how-to-use-vuejs-and-turbolinks-together

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67289636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档