首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导航选项卡重新加载页面

导航选项卡重新加载页面
EN

Stack Overflow用户
提问于 2018-12-22 17:32:33
回答 1查看 1.5K关注 0票数 0

我在玩基本原理,当我点击navigation中的路由链接时,它会重新加载页面,而不是加载页面内容,而是呈现正确的URL。我把这个项目上传到git。

这是入口点src -> App.vue

代码语言:javascript
复制
<template>
  <navigation></navigation>
</template>

<script lang="ts">

import Navigation from "@/views/navigation/Navigation.vue";

export default({
  name: 'App',
  components: {
    Navigation
  }
});
</script>  

产品结构

在航海方面,我有:

代码语言:javascript
复制
  <b-navbar-nav>
      <b-nav-item href="#">Home</b-nav-item>
      <b-nav-item href="/about">About</b-nav-item>
      <b-nav-item href="/contact">Contact</b-nav-item>
    </b-navbar-nav>

在router.ts文件中

代码语言:javascript
复制
import Vue from 'vue'
import Router from 'vue-router'
import Contact from '@/views/contact/Contact.vue'
import About from '@/views/about/About.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/about',
      name: 'about',
      component: About
    },
    {
      path: '/contact',
      name: 'contact',
      component: Contact
    },

  ]
})

我读过医生的书,看上去我做得很对,但我错了。

github链接https://github.com/drewjocham/firstVue

我想要做的是让App.vue成为父母和views的孩子。如果这不是一个好的项目结构,请纠正我。我更像一个后端的家伙(java-spring),并且尝试学习更多的前端技术。

--更新1

代码语言:javascript
复制
 <b-navbar-nav>
      <b-nav-item :to="{name: 'about'}">About</b-nav-item>
      <b-nav-item :to="{contact: 'contact'}">Contact</b-nav-item>
    </b-navbar-nav>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-22 19:08:10

首先,您必须理解,只有通过Vue-路由器库管理您的URL时,使用VueJs制作的单一页面网站(不重新加载)才能工作。您所创建的路由是正确的,但是组件没有加载的位置。所以,在你的App.js中,你想让你的所有组件加载,你写这个-

代码语言:javascript
复制
<template>
  <div id="app">
    <Navigation></Navigation>
    <router-view/>
  </div>
</template>

关注路由器视图,它是vue -路由器用来加载组件的Vue组件.

然后考虑到您已经为您的路线命名了,只需使用:来绑定,而不是导航导航中的href。

这意味着

代码语言:javascript
复制
 <b-navbar-nav>
   <b-nav-item :to="{name: 'home'}">Home</b-nav-item>
   <b-nav-item :to="{name: 'about'}">About</b-nav-item>
   <b-nav-item :to="{name: 'contact'}">Contact</b-nav-item>
</b-navbar-nav>

为了你所有的导航项目。

你的路线需要-

代码语言:javascript
复制
export default new Router({
  name: 'Navigation',
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      component: About
    },
    {
      path: '/contact',
      name: 'contact',
      component: Contact
    },

  ]
})

确保您的组件导入与组件相关-

代码语言:javascript
复制
<template>
  <Navigation></Navigation>
</template>

<script lang="ts">

import Navigation from "@/views/navigation/Navigation.vue";

export default({
  name: 'App',
  components: {
    Navigation
  }
});
</script> 

关注“导航”而不是“导航”

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

https://stackoverflow.com/questions/53897902

复制
相关文章

相似问题

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