ruby-on-rails - 带有 Turbolinks 的多页 Rails 6 应用程序的 VueJS - 布局

标签 ruby-on-rails vue.js ruby-on-rails-6 multi-page-application

我有一个具体问题,我正在努力在网上查找相关信息。我已经使用 webpacker 成功地将 VueJS 安装到我的 Rails 6 应用程序中,并且有一个根组件在我的应用程序布局文件中注册得很好:

<!-- 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 启动 View /模板更改 - 一切都有意义。我的问题与 vue 应用初始化应该如何与多页应用一起工作有关。
应用程序是否在每次重新加载/turbolink 加载时完全初始化?如果我只是在各个页面中到处使用一些组件,我是否坚持在每个页面加载时初始化整个 VueJS 应用程序,然后再初始化这些组件?如果是这样,我应该在 application.html.erb 中的 body 标记(或根元素)上初始化 Vue JS 应用程序,还是应该只在具有组件的页面上初始化应用程序?

最佳答案

你需要找出什么负责你的路由 - Vue 还是 Rails?
如果是 Rails,那么是的,每次页面加载时都需要重新安装 Vue 应用程序。这适用于您是否使用 Turbo/Turbolinks,只要 Vue 应用程序在获取的部分中。如果获取的部分在 Vue 容器之外并且您使用 Turbo/Turbolinks,则 Vue 应用程序将不会重新加载。即使对于在客户端上水合的服务器渲染 Vue 也是如此。
如果是 Vue 做路由,Rails 可能不会做,否则 Vue app 会一直重新加载。

关于ruby-on-rails - 带有 Turbolinks 的多页 Rails 6 应用程序的 VueJS - 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67289636/

相关文章:

javascript - 通过鼠标拖动更改对象颜色

jquery - Vue.js + jQuery UI 可拖动

ruby-on-rails - 警告 : the running version of Bundler is older than the version that created the lockfile error

javascript 未在 Rails 6 中编译

javascript - Stripe with Rails 捐款

ruby-on-rails - 如何使用 ActionMailer 在 IMAP "Sent"框中保存外发电子邮件的副本?

ruby-on-rails - 单选按钮助手 - 默认值

image - 无法使用 VueJS 将文件传递给 Laravel Controller

ruby-on-rails - 在 Rails 6 上定义 secret_key_base 的正确方法是什么?

ruby-on-rails - 为什么我的参数哈希为零?