意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Router怎样进行嵌套路由,具体方法操作是什么

来源:恒创科技 编辑:恒创科技编辑部
2024-01-22 10:07:59
这篇文章主要介绍“Router怎样进行嵌套路由,具体方法操作是什么”,有一些人在Router怎样进行嵌套路由,具体方法操作是什么的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。


 


前言:

有时候在路由中,主要的部分是相同的,但是下面可能是不同的。比如访问首页,里面有新闻类的/home/news,还有信息类的/home/message。这时候就需要使用到嵌套路由。


Router怎样进行嵌套路由,具体方法操作是什么

项目结构如下:

我们创建了3个组件,分别是Home.vueHomeNews.vueHomeMessage.vue代码如下:

Home.vue

<template>
  <div class="home">
    <h1>Home</h1>
    <router-link to="/home/news">新闻类</router-link>  // 注意这里一定要写完整路径不能只写/news,需要加上/home
    <router-link to="/home/message">信息类</router-link>
    <router-view></router-view>
  </div>
</template>

<script>

export default {
  name: "Home",
};
</script>

<style scoped>

</style>

HomeNews

<template>
  <div class="homeNews">
    <ul>
      <li>新闻1</li>
      <li>新闻2</li>
      <li>新闻3</li>
      <li>新闻4</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "HomeNews"
}
</script>

<style scoped>

</style>

HomeMessage

<template>
  <div class="homeMessage">
    <ul>
      <li>消息1</li>
      <li>消息2</li>
      <li>消息3</li>
      <li>消息4</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "HomeMessage"
}
</script>

<style scoped>

</style>

组件写完以后,我们在router文件夹下的index.js文件中配置路由

import Vue from "vue";
import VueRouter from "vue-router";

Vue.use(VueRouter);

// 这里还是使用路由懒加载
const Home = () => import('../views/Home')
const HomeNews = () => import('../views/HomeNews')
const HomeMessage = () => import('../views/HomeMessage')

const routes = [
  {
    path: "/home",
    name: "Home",
    component: Home,
    // 子路由的写法
    children: [
      {
        path: "news",
        name: "HomeNews",
        component: HomeNews
      },
      {
        path: "message",
        name: "HomeMessage",
        component: HomeMessage
      },
    ]
  },
  {
    path: "",
    redirect: "home"
  }
];

const router = new VueRouter({
  routes,
  mode: 'history',
});

export default router;

嵌套路由的写法很简单,你会发现,children 配置就是像 routes 配置一样的路由配置数组,所以呢,你可以嵌套多层路由。

此时,基于上面的配置,当你访问 /home/时,home 的出口是不会渲染任何东西。

这是因为没有匹配到合适的子路由。如果想要渲染点什么,可以提供一个 空的 子路由:

const routes = [
  {
    path: "/home",
    name: "Home",
    component: Home,
    children: [
      {
        path: "news",
        name: "HomeNews",
        component: HomeNews
      },
      {
        path: "message",
        name: "HomeMessage",
        component: HomeMessage
      },
      // 新增空的子路由
      {
        path: "",
        redirect: "news"
      }
    ]
  },

  {
    path: "",
    redirect: "home"
  }
];

这样页面就默认会重定向到news页面,会展示news的信息


到此这篇关于“Router怎样进行嵌套路由,具体方法操作是什么”的文章就介绍到这了,更多相关内容请搜索恒创科技以前的文章或继续浏览下面的相关文章,希望大家以后多多支持恒创科技!
上一篇: JS面向对象方式实现的放大镜效果代码是什么 下一篇: 手机怎么远程登录云服务器?