Vue Router介绍

它是一个Vue.js官方提供的路由管理器。是一个功能更加强大的前端路由器,推荐使用。Vue Router和Vue.js非常契合,可以一起方便的实现SPA(single page web application,单页应用程序)应用程序的开发。Vue Router依赖于Vue,所以需要先引入Vue,再引入Vue Router

1.1.1 有哪些特性

  • 支持H5历史模式或者hash模式

  • 支持嵌套路由

  • 支持路由参数

  • 支持编程式路由

  • 支持命名路由

  • 支持路由导航守卫

  • 支持路由过渡动画特效

  • 支持路由懒加载

  • 支持路由滚动行为

1.1.2 使用步骤

1.导入js文件

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

如果 其他官网上提供的vue-router.js访问不了。我们现在 用npm下载

vue核心插件之一Vue Router路由模块

vue-router 路由插件是vue的核心插件

1.下载

npm install vue-router -S

npm install vue-router --save

我们推荐 使用本地下载好的vue.js和vue-router.js

<!-- 1.先引入vue -->
    <script src="./js/vue.js"></script>
    <!-- 2.再引入vue-router -->
    <script src="./js/vue-router.js"></script>

2.添加路由链接:<router-link>是路由中提供的标签,默认会被渲染为a标签,to属性默认被渲染为href属性,to属性的值会被渲染为#开头的hash地址

<!-- 通过router-link标签链接跳转,访问组件 -->
<router-link to="/login">登录</router-link>
<router-link to="/user">用户中心</router-link>

3.添加路由填充位(路由占位符)

<router-view></router-view>

4.定义路由组件

     // 定义组件
        // 登录组件
        let login = {
            template:`
            <div>
                <h1>我是登录页面</h1>
            </div>
            `
        }
        // 用户中心组件
        let user = {
            template:`
            <div>
                <h1>我是用户中心页面</h1>
            </div>
            `
        }

5.配置路由规则并创建路由实例

 // 配置路由规则并创建路由实例
        let myrouter = new VueRouter({
            // routes是路由规则数组
            //每一个路由规则都是一个对象,对象中至少包含path和component两个属性
            //path表示  路由匹配的hash地址,component表示路由规则对应要展示的组件对象
            routes:[
                {
                    path:'/login',
                    component:login
                },
                {
                    path:'/user',
                    component:user
                }
            ]
        })

6.将路由挂载到Vue实例中

   // 根组件
        // 将路由挂载到Vue实例中
        let vm = new Vue({
            el:'#app',
            data:{
    
            },
            //通过router属性挂载路由对象
            // router:router,
            // router,
            router:myrouter,
            methods:{
                
            },
            components:{
                login,
                user
            }
        })

案例效果图:

完整代码演示:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 1.先引入vue -->
    <script src="./js/vue.js"></script>
    <!-- 2.再引入vue-router -->
    <script src="./js/vue-router.js"></script>
</head>
<body>
    

    <div id="app">
        <!-- 通过router-link标签链接跳转,访问组件 -->
        <router-link to="/login">登录</router-link>
        <router-link to="/user">用户中心</router-link>
        <router-view></router-view>
    </div>
    
    <script>
        // 特别注意:要先有组件,然后 我们才能 去配置 各个组件对应的路由规则
        // 定义组件
        // 登录组件
        let login = {
            template:`
            <div>
                <h1>我是登录页面</h1>
            </div>
            `
        }
        // 用户中心组件
        let user = {
            template:`
            <div>
                <h1>我是用户中心页面</h1>
            </div>
            `
        }

        // 配置路由规则并创建路由实例
        let myrouter = new VueRouter({
            // routes是路由规则数组
            //每一个路由规则都是一个对象,对象中至少包含path和component两个属性
            //path表示  路由匹配的hash地址,component表示路由规则对应要展示的组件对象
            routes:[
                {
                    path:'/login',
                    component:login
                },
                {
                    path:'/user',
                    component:user
                }
            ]
        })


        // 根组件
        // 将路由挂载到Vue实例中
        let vm = new Vue({
            el:'#app',
            data:{
    
            },
            //通过router属性挂载路由对象
            // router:router,
            // router,
            router:myrouter,
            methods:{
                
            },
            components:{
                login,
                user
            }
        })
    </script>
</body>
</html>

1.1.3 重定向

路由重定向:可以通过路由重定向为页面设置默认展示的组件

在路由规则中添加一条路由规则即可,如下:

        // 配置路由规则并创建路由实例
        let myrouter = new VueRouter({
            // routes是路由规则数组
            //每一个路由规则都是一个对象,对象中至少包含path和component两个属性
            //path表示  路由匹配的hash地址,component表示路由规则对应要展示的组件对象
            routes:[
                {
                    //path设置为/表示页面最初始的地址 / ,redirect表示要被重定向的新地址,设置为一个路由即可
                    path:'/',
                    redirect:'/login'
                },
                {
                    path:'/login',
                    component:login
                },
                {
                    path:'/user',
                    component:user
                }
            ]
        })

完整代码演示:

重定向是打开浏览器后会直接显示  默认展示的User组件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 1.先引入vue -->
    <script src="./js/vue.js"></script>
    <!-- 2.再引入vue-router -->
    <script src="./js/vue-router.js"></script>
</head>
<body>
    

    <div id="app">
        <!-- 通过router-link标签链接跳转,访问组件 -->
        <router-link to="/login">登录</router-link>
        <router-link to="/user">用户中心</router-link>
        <router-view></router-view>
    </div>
    
    <script>
        // 特别注意:要先有组件,然后 我们才能 去配置 各个组件对应的路由规则
        // 定义组件
        // 登录组件
        let login = {
            template:`
            <div>
                <h1>我是登录页面</h1>
            </div>
            `
        }
        // 用户中心组件
        let user = {
            template:`
            <div>
                <h1>我是用户中心页面</h1>
            </div>
            `
        }

        // 配置路由规则并创建路由实例
        let myrouter = new VueRouter({
            // routes是路由规则数组
            //每一个路由规则都是一个对象,对象中至少包含path和component两个属性
            //path表示  路由匹配的hash地址,component表示路由规则对应要展示的组件对象
            routes:[
                {
                    //path设置为/表示页面最初始的地址 / ,redirect表示要被重定向的新地址,设置为一个路由即可
                    path:'/',
                    redirect:'/login'
                },
                {
                    path:'/login',
                    component:login
                },
                {
                    path:'/user',
                    component:user
                }
            ]
        })

        // 根组件
        // 将路由挂载到Vue实例中
        let vm = new Vue({
            el:'#app',
            data:{
    
            },
            //通过router属性挂载路由对象
            // router:router,
            // router,
            router:myrouter,
            methods:{
                
            },
            components:{
                login,
                user
            }
        })
    </script>
</body>
</html>

1.4 嵌套路由

1.4.1 什么是嵌套路由

  1. 嵌套路由概念

    当我们使用 vue Router路由管理器,显示组件 ,并且 显示的组件中还有新的子级路由链接以及内容。

  2. 嵌套路由案例

    核心代码:

// 配置路由规则并创建路由实例
Vue.use(VueRouter);
let router = new VueRouter({
    // routes是路由规则数组
 routes:[
        // 每一个路由规则都是一个对象,对象中至少包含path和component两个属性
        {
            path:'/index',
            component:Index
        },
        {
            path:'/news',
            component:News,
            // 嵌套路由(子路由)
            // children数组 表示 子路由规则
            children:[
                {
                    path:'/news/one',
                    // path:'/news/one',
                    component:One
                },
                   {
                    path:'/news/two',
                    // path:'/news/two',
                       component:Two
                }
            ]
        }
    ]
})

完整代码演示:

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值