欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue路由的使用讲解(代码实例)

程序员文章站 2022-07-03 20:33:37
1. 引入vue和vue-router 安装vue-router: npm i -S vue-router <...

1. 引入vue和vue-router

安装vue-router: npm i -S vue-router

<!-- 引入 vue.js -->
  <script src="./vue.js"></script>

<!-- 引入 vue-router.js , 注意:vue-router 是vue的插件, 所以,在使用路由之前先引入vue.js-->
  <script src="./node_modules/vue-router/dist/vue-router.js"></script>

2. 创建两个组件

var Home = {
      template: '<h1>首页</h1>'
    }
var Vip = {
  template: '<h1>会员</h1>'
}

3. 配置路由规则(创建路由实例)

    var router = new VueRouter({
      // 通过 routes 配置项来配置路由
      routes: [
        { path: '/home', component: Home },
        { path: '/vip', component: Vip },
      ]
    })

4. 路由实例与Vue实例关联

// 是Vue配置项
router: router

5. 链接导航

<!-- router-link 组件是由 vue-router 库提供的, 将来这个组件会被编译为 a标签 -->
<!-- to 属性的值, 与 路由实例中 的path 属性相匹配 -->
<router-link to="/home">首页</router-link>
<router-link to="/vip">会员</router-link>

6. 路由出口

<!-- 通过 router-view 组件, 来指定路由内容展示在页面中的位置 -->
<router-view></router-view>

7. 路由重定向

// 路由配置中添加配置(默认首页)
{ path: '/', redirect: '/home' },

导航高亮

<style>
    .router-link-exact-active, .router-link-active {
      color: red;
      font-size: 30px;
    }
</style>

路由参数

设置带参数路由

// 匹配/home/XXX
{ path: '/home/:参数名', component: Home }

// 带查询参数和哈希值
<router-link to="/user/xxx?age=18&gender=female#a=b">小红</router-link>

获取参数

$route.params.id
//也可以通过 $route.query 获取到 URL 中的查询参数
// 通过$route.hash 获取URL中的哈希值

监视路由

// 为了监视到路由参数的变化,通过 watch 监视$route
      watch: {
        $route(to, from) {
          //  对路由变化作出响应...

          // to 或 from 是匹配的路由对象,对象中包含了参数信息等
          console.log(from); // 前一路由信息(对象)
          console.log(to.params.name); // 当前路由参数值
        }
      }

嵌套路由

var router = new VueRouter({
      routes: [{
        path: '/user',
        component: User,

        // 子路由规则
        children: [
          {
            path: 'profile',
            component: UserProfile
          },
          {
            path: 'posts',

             // 如果子路由的path中添加了/,那么路由对应的路径就变为:绝对路径了,将来这个path就不会再与 /user 拼接到一起,
            // 直接在 浏览器地址栏中访问 #/posts 就可以了
            // path: '/posts',
            component: UserPosts
          }
        ]
      }]
    })

说明:

子路由的链接和出口放到父路由组件模板中