vue中的路由

2018-09-25  本文已影响0人  信不由衷

1.vue-router相当于vue的第三方数据库。

用处1.通过不同的url访问不同的页面,实现spa(single page application)单页面应用。
下载:npm install vue-router
引用:先引用vue.js在引用vue-router.js

2.路由的建立步骤

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .active{
            color: red
        }
    </style>
</head>
<body>
  <!--1.把标签写好-->
   <div id="app">
       <router-link to="/home">首页</router-link>
       <router-link to="/detail">详情页</router-link>
       <router-view></router-view>
   </div>
    <script src="js/vue.js"></script>
    <script src="js/vue-router.js"></script>
    <script>
       /* 2.创建组件*/
        var Home={
            template:`
                <h1>我是首页的内容</h1>
            `
        }
        var Detail={
            template:`
                <h1>我是详情页的内容</h1>
            `
        }
        /*3.配置路由*/
        const routes=[
            {path:"/",component:Home},
            {path:"/home",component:Home},
            {path:"/detail",component:Detail}
        ]
       /* 4.创建路由实例*/
        const rount=new VueRouter({
            routes:routes,
            linkActiveClass:"active"//默认:linkActiveClass
        })
        /*5.把路由挂到vue的实例上*/
        new Vue({
            el:"#app",
            router:rount
        })
    </script>
</body>
</html>

3.路由的嵌套

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .active{
            color: red
        }
    </style>
</head>
<body>
  <!--1.把标签写好-->
   <div id="app">
       <router-link to="/home">首页</router-link>
       <router-link to="/detail">详情页</router-link>
       <router-view></router-view>
   </div>
    <script src="js/vue.js"></script>
    <script src="js/vue-router.js"></script>
    <script>
       /* 2.创建组件*/
        var Home={
            template:`
                <h1>我是首页的内容</h1>
            `
        }
        var Detail={
            template:`
               <div>
                     <h1>我是详情页的内容</h1>
                     <ul>
                        <li>
                            <router-link to="/detail/deng">登录</router-link>
                        </li>
                        <li>
                            <router-link to="/detail/zhu">注册</router-link>
                        </li>
                    </ul>
                    <router-view></router-view>
               </div>
            `
        }
        var Deng={
            template:`
                <h1>这是登录页面</h1>
            `
        }
        var Zhu={
            template:`
                <h1>这是注册页面</h1>
            `
        }
        /*3.配置路由*/
        const routes=[
            {path:"/",component:Home},
            {path:"/home",component:Home},
            {
                path:"/detail",
                component:Detail,
                children:[
                    {path:"deng",component:Deng},
                     {path:"zhu",component:Zhu}
                ]
            }
        ]
       /* 4.创建路由实例*/
        const rount=new VueRouter({
            routes:routes,
            linkActiveClass:"active"//默认:linkActiveClass
        })
        /*5.把路由挂到vue的实例上*/
        new Vue({
            el:"#app",
            router:rount
        })
    </script>
</body>
</html>

4.路由的传参

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .active{
            color: red
        }
    </style>
</head>
<body>
 <!--1.字符串传参数
 /detail/deng?uname=jack&age=18
 接受{{$route.query}}
 2.rest风格传参
 /detail/zhu/jack/18
 接受:{{$routs.params}}-->
  <!--1.把标签写好-->
   <div id="app">
       <router-link to="/home">首页</router-link>
       <router-link to="/detail">详情页</router-link>
       <router-view></router-view>
   </div>
    <script src="js/vue.js"></script>
    <script src="js/vue-router.js"></script>
    <script>
       /* 2.创建组件*/
        var Home={
            template:`
                <h1>我是首页的内容</h1>
            `
        }
        var Detail={
            template:`
               <div>
                     <h1>我是详情页的内容</h1>
                     <ul>
                        <li>
                            <router-link to="/detail/deng?uname=jack&age=18">登录</router-link>
                        </li>
                        <li>
                            <router-link to="/detail/zhu/jack/18">注册</router-link>
                        </li>
                    </ul>
                    <router-view></router-view>
               </div>
            `
        }
        var Deng={
            template:`
                <div>
                    <h1>这是登录页面</h1>
                    <p>{{$route.query}}<span>以对象的形式输出</span></p>
                    <p>{{$route.query.uname}}</p>
                </div>
            `
        }
        var Zhu={
            template:`
                <div>
                    <h1>这是注册页面</h1>
                    <p>{{$route.params}}<span>以对象的形式输出</span></p>
                    <p>{{$route.params.name}}</p>
                </div>
            `
        }
        /*3.配置路由*/
        const routes=[
            {path:"/",component:Home},
            {path:"/home",component:Home},
            {
                path:"/detail",
                component:Detail,
                children:[
                    {path:"deng",component:Deng},
                     {path:"zhu/:name/:age",component:Zhu}
                ]
            }
        ]
       /* 4.创建路由实例*/
        const rount=new VueRouter({
            routes:routes,
            linkActiveClass:"active"//默认:linkActiveClass
        })
        /*5.把路由挂到vue的实例上*/
        new Vue({
            el:"#app",
            router:rount
        })
    </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读