二十六、进阶之二级路由

(1)二级路由的解释

#后,前面的一个路径不变,后面的路径在变化

(2)访问Film的两个子组件Nowplaying和Comingsoon

在二十四和二十五节的基础上

(2.1)首先在views/Films下创建子组件Nowplaying和Comingsoon

(2.2)在Film组件中插入子组件

在router/index.js中会创建Film组件的两个孩子路径,

(2.3)在router/index.js中创建Film组件的两个孩子路径

(2.4)效果图

 

(2.5) 添加重定向功能

访问http://localhost:8080/时,或 访问http://localhost:8080/#/film时,都重定向到如下页面

(2.6)代码

1. router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router' //引入下载的路由
//引入三个组件
import Film from '@/views/Film' //.js可以省略
import Cinema from '@/views/Cinema'
import Center from '@/views/Center'
//引入film的两个孩子组件
import Comingsoon from '@/views/Films/Comingsoon'
import Nowplaying from '@/views/Films/Nowplaying'

Vue.use(VueRouter)//使用注册路由插件

const route = new VueRouter({
  routes:[ //定义多个路由routes
    {
      path:"/film", //如果路径是film,则加载的是Film组件
      component:Film,
      children:[//定义film的下一级路径nowplaying和  
        {
          path:"/film/nowplaying",
          component:Nowplaying
        },
        {
          path:"/film/comingsoon",
          component:Comingsoon
        },
        {
          path:"", //即访问.../film时,进行重定向
          redirect: "/film/nowplaying"
        }
      ]
    },
    {
      path:"/cinema", //如果路径是cinema,则加载的是Cinema组件
      component:Cinema
    },
    {
      path:"/center",
      component:Center
    },
    {
      path:"*", //表示除了上述路径(/film、/cinema、/center)的其他路径
      redirect:'/film' //重定向到/film
    }
  ]
})
export default route //导出路由

2. views/Film.vue

<template>
    <div>
        <div>轮播</div>
        <div>film-header</div>
        
        <!--路由容器,类似插槽。以便路由组件的显示
            假设film有两个子组件:Comingsoon 和 Nowplaying(存放在views/Films下)
        -->
        <router-view></router-view>
    </div>
</template>

3.App.vue

<template>
  <div>
    <tabbar></tabbar>
    <!--路由容器,类似插槽。以便路由组件的显示-->
    <router-view></router-view>
  </div>
</template>

<script>

 //导入Tabbar组件
 import tabbar from '@/components/Tabbar'

 import axios from 'axios'

  export default{
    data(){
      return{
        datalist:[],
      }
    },
    components: {//定义局部组件
      tabbar
    },
  //  mounted () {//进行ajax请求,将获取到的该网站的信息显示到控制台
  //   //原网址https://m.maoyan.com/ajax/movieOnInfoList?token=
  //    axios.get("/ajax/movieOnInfoList?token=").then(res=>{
  //      console.log(res.data)
  //    })
  //  },

  }
  
</script>

<style lang="scss">
/*lang="scss"表示style中支持scss语法*/
  
</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 React 中,使用 React Router 可以轻松地创建二级路由。下面是一个简单的示例来说明如何创建二级路由: 首先,确保你已经安装了 React Router 库。可以使用以下命令来安装: ``` npm install react-router-dom ``` 接下来,在你的应用程序中导入所需的模块: ```jsx import React from 'react'; import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom'; ``` 然后,在你的组件中定义路由。下面是一个示例: ```jsx function App() { return ( <Router> <div> <nav> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/about">About</Link> </li> <li> <Link to="/dashboard">Dashboard</Link> </li> </ul> </nav> <Switch> <Route path="/" exact component={Home} /> <Route path="/about" component={About} /> <Route path="/dashboard" component={Dashboard} /> </Switch> </div> </Router> ); } function Home() { return <h2>Home</h2>; } function About() { return <h2>About</h2>; } function Dashboard() { return ( <div> <h2>Dashboard</h2> <Switch> <Route path="/dashboard/profile" component={Profile} /> <Route path="/dashboard/settings" component={Settings} /> </Switch> </div> ); } function Profile() { return <h3>Profile</h3>; } function Settings() { return <h3>Settings</h3>; } ``` 在上面的示例中,我们创建了一个 `Router` 组件,并在其中定义了导航菜单和路由规则。`Route` 组件用来定义路径和组件的映射关系。`Switch` 组件用来保证只有一个路由匹配成功。 在 `Dashboard` 组件中,我们创建了另一个嵌套的 `Switch` 组件,以支持二级路由。在这个嵌套的 `Switch` 中,我们定义了 `/dashboard/profile` 和 `/dashboard/settings` 这两个路径与对应的组件的映射关系。 最后,将 `App` 组件渲染到 DOM 中: ```jsx ReactDOM.render(<App />, document.getElementById('root')); ``` 通过以上代码,你就可以在你的应用程序中创建二级路由了。在导航菜单中点击链接将会渲染相应的组件。例如,点击 `/dashboard` 将会显示 `Dashboard` 组件,点击 `/dashboard/profile` 将会显示 `Profile` 组件。 希望这个示例能帮助你理解如何在 React 中创建二级路由。如有其他问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值