VUE-路由跳转,重定向,嵌套路由,路由高亮

我们开始建的项目时没有router的项目。

所以现在需要建立router文件夹,index.js文件,做路由跳转配置。

我在components下建立了,HelloWorld.vue、Hi.vue、nav.vue。

首先在App.vue下引入nav.vue.使用没有router的引入方式。参考

import Nav from '@/components/nav'  //引入页面

components:{    //使用组件nav
    Nav
}

 <Nav/>  //html中显示

HelloWorld.vue、Hi.vue内容随便写。

nav.vue中代码,应该都能看懂吧!html  js  css  。router-link路由跳转

<template lang="html">
  <div class="nav">
    <ul>
      <router-link tag="li" to="/hello">hello</router-link>
      <router-link tag="li" to="/hi">hi</router-link>
    </ul>
  </div>
</template>


<script>
export default {};
</script>

<style lang="css">
.nav{
    width:100%;
    height: 50px;
    line-height: 50px;
    background:#FFF;
}
.nav ul {
  clear: both;
  overflow: hidden;
}
.nav li {
  float: left;
  margin:0 20px;
  list-style:none;
}
</style>

index.js中代码

import Vue from 'vue'
import Router from 'vue-router' 
import HelloWorld from '@/components/HelloWorld'
import Hi from '@/components/Hi'

Vue.use(Router)

export default new Router({   //路由跳转 和nav中router-link对应
  routes: [
    {
      path: '/hello',
      component: HelloWorld,
      
    },
    { 
      path: '/hi',
     component: Hi
    }
  ]
})

main.js中代码如下

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

这样是把所有关于路由跳转的配置都放在了index.js中了。

 路由重定向,放在index.js的router下面,当请求路径为空的时候自动跳转到hello路径下。

{
     path: '/',
     redirect:'/hello'
},

路由的嵌套。

新建几个页面。建一个pages文件夹,下面建hello1.vue  hello2.vue  ,在HelloWorld中定义router-link显示路径。要写全

<div class="hello">
    HelloWorld:
    <ul>
      <li><router-link to="/hello/Hello1">H1</router-link></li>   //定向路径要写全
      <li><router-link to="/hello/Hello2">H2</router-link></li>
    </ul>
    <router-view></router-view>   //显示返回的页面h1orh2
  </div>

建立路由在index.js中

引入,路由定向,代码如下。

import Hello1 from '@/pages/hello1'
import Hello2 from '@/pages/hello2'

//因为是在hello下写的嵌套,路由定向写在他的内部
{
      path: '/hello',
      component: HelloWorld,
      redirect:'/hello/hello1', //重定向,路径要写全。好好体会写全是什么意思
      children:[                //嵌套路由
        {
          path:'hello1',
          component:Hello1
        },
        {
          path:"hello2",
          component:Hello2
        }

      ]
    },

这样子嵌套就完成了。

小知识

路由标签开始显示颜色在App.vue中写css样式

a:link,a:hover,a:active,a:visited{
   /* 标签显示颜色 */
  color:#222;    
} 

如何让路由标签鼠标点击到就变颜色

//nav.vue中
.active{
    color:red !important;
}

//index.js 中routers方法中
 linkActiveClass:"active",   //点中出现效果,对应nav中的active设置
 mode:'history',   //路由跳转有个历史记录

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-Router是Vue.js官方提供的路由管理插件,可以实现单页面应用(SPA)中的路由切换。在Vue-Router中,我们可以通过嵌套路由来管理复杂的页面结构和页面间的跳转逻辑。 路由嵌套是指在一个路由组件中嵌套其他子路由组件,形成一个父子关系的层级结构。通过路由嵌套,我们可以更好地管理页面的细节和逻辑。 在Vue-Router中,我们首先需要定义路由的层级结构。我们可以在路由配置中使用`children`属性来定义嵌套路由。例如: ```js const router = new VueRouter({ routes: [ { path: '/home', component: Home, children: [ { path: 'about', component: About }, { path: 'contact', component: Contact } ] } ] }); ``` 在上面的代码中,我们定义了一个名为`home`的父路由,它有两个子路由`about`和`contact`。当用户访问`/home/about`时,会渲染`About`组件,而当用户访问`/home/contact`时,会渲染`Contact`组件。 在嵌套路由中,父路由的组件中需要使用`<router-view>`标签来显示子路由对应的组件。在上面的例子中,我们需要在`Home`组件中添加`<router-view>`标签。 ```html <template> <div> <h1>Home</h1> <router-view></router-view> </div> </template> ``` 当用户访问`/home`时,会渲染`Home`组件,并且`<router-view>`标签中会显示子路由对应的组件。 通过嵌套路由,我们可以更好地管理页面的结构和逻辑,将页面分成多个模块,并且可以在子路由中访问父路由的数据和方法。我们可以在路由跳转时传递参数,通过使用`$route.params`来获取参数。 总结来说,Vue-Router的路由嵌套可以实现复杂的页面结构和页面间的跳转逻辑,通过定义父子关系的路由层级结构,使用`<router-view>`标签来显示子组件,并且可以通过路由传递参数来实现页面间的数据共享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值