【问题标题】:How to render the Vue component to a another (new) page in Vue-js using router?如何使用路由器将 Vue 组件渲染到 Vue-js 中的另一个(新)页面?
【发布时间】:2020-06-02 07:51:46
【问题描述】:

目前我的应用程序呈现在同一页面上,但我希望它呈现到新页面。我尝试使用render: h => h(App) 进行渲染,但它仍然呈现在同一页面上。

这是链接路由器的 Vue 文件 (Risks.vue):

<router-link to="/risk-info">
<td>{{item.Model}}</td>
<td>{{item.Vulnerability}}</td>
<td>{{item.Unresolved}}</td>
</router-link>
<router-view/>

以下文件将我的路由器链接到组件(index.js):

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '/risk-info',
    name: 'RiskInfo',
    component: () => import('../components/breakdown/risks/VulnerabilityDetails.vue')
  }
]

const router = new VueRouter({
  routes
})

export default router

最后,这是定义 Vue 对象 (main.js) 的文件:

new Vue({
  router,
  render: h => h(App),
  store,
}).$mount('#app')

【问题讨论】:

  • 请问您能更具体地说明您想要实现的目标吗?您尝试了哪些方法,哪些方法无效?
  • 我在问题中添加了这些内容。谢谢@Simon

标签: javascript vue.js vuejs2 vue-component vue-router


【解决方案1】:

如果您的意思是,如何在新选项卡中打开链接,那么您可以在 &lt;router-link&gt; 上使用 target 属性

<router-link to="/risk-info" target="_blank">...</router-link>

虽然显然您会丢失任何应用程序状态,因为它会加载您应用程序的新实例。

【讨论】:

  • 组件是否可以在同一选项卡上打开但作为新页面打开?
  • 我不明白你的意思。您希望页面地址与页面内容一起更改吗?你当前的代码不就是这样吗?
  • 现在发生的事情是它与同一页面上的其他元素一起显示,我想要的是它打开时好像是一个新页面,其中以前的页面组件不存在。
  • 听起来您可能已经将您的“主页”页面内容实际放在包含&lt;router-view&gt; 组件的页面中?如果你把它放在它自己的页面组件中,并添加一个默认路由,它应该在 URL 发生变化时被换掉。
  • 是的@NilsonJacques,你完全正确!如果你也能支持我的问题,你会非常好。谢谢?
猜你喜欢
  • 2019-02-24
  • 2019-04-13
  • 2021-11-14
  • 2019-07-03
  • 2019-11-03
  • 2020-02-16
  • 2020-03-23
  • 2019-02-21
  • 2021-09-17
相关资源
最近更新 更多