Vue 路由

Posted zcccz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 路由相关的知识,希望对你有一定的参考价值。

路由:路:路径(地址)  由:方向  
    针对于单页面应用,所提供的一个解决方案。根据地址传递的参数,来决定具体要使用的组件。
1、下载(如果已下载该步可以省略)
    cnpm install vue-router -S
2、引入
    import Router from ‘vue-router‘
3、安装:
    Vue.use(Router)
4、生成router对象
    export default new Router(
      mode: ‘history‘,
      base: process.env.BASE_URL,
      routes: [
        
          path: ‘/‘,
          name: ‘home‘,
          component: Home
        ,
        
          path: ‘/about‘,
          name: ‘about‘,
          // route level code-splitting
          // this generates a separate chunk (about.[hash].js) for this route
          // which is lazy-loaded when the route is visited.
          component: () => import(/* webpackChunkName: "about" */ ‘./views/About.vue‘)
        
      ]
    )
**************************************************************
引入组件有两种方法
1、import One from ‘@/views/One‘
    
        path:"/one",
        component:One
    
2、
        
            path:"/two",
            component:()=>import(‘@/views/Two‘)
        
**************************************************
路由如何引入子组件
    1、在components下新建一个文件Child.vue
    2、在路由组件当中使用时
        1、
           import Child from "@/views/Child"
           export default 
                components:
                    Child
                
           
        2、
            export default 
                   name: "one",
                   components:
                       Child:()=>import(‘@/components/Child‘)
                   
               
************************************************
router-view:是一个内置的组件。将符合要求的路由所指向的组件进行渲染的地方。
router-link:是一个内置组件。可以实现组件的切换。
    属性:
        1、to:跳转到什么路由
* 地址是不区分大小写的。对大小写不敏感
* 如果地址相同,以第一次优先。
*****************************************
404:
  
        path:"*",
        component:()=>import("@/views/Error")
    
****************************************
别名:可以通过“/"或“/home"来进行访问
       
            path: ‘/‘,
            name: ‘home‘,
            alias:"/home",
            component: Home
        ,
* :提供了另外一种访问该路由的方式。
*****************************************
重定向:

  path:"/lalala",
  redirect:"/two"
,
*当你的地址为lalala时,重定向到path为“/two" 的路由
****************************************
如何实现路由的跳转
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>|
      <!--<router-link to="/one">One</router-link>|-->
      <!--<router-link :to="one">One1</router-link>|-->
      <!--<router-link :to="path:‘/one‘">One2</router-link>|-->
      <router-link :to="name:‘xixi‘">One3</router-link>|
      <router-link to="/two">two</router-link>|
*******************************************************************
单页面多路由
       
            path:"/three",
            // component:()=>import("@/views/Three")
            components:
                one:()=>import("@/views/One"),
                two:()=>import("@/views/Two"),
                three:()=>import("@/views/Three"),
                default:()=>import("@/views/MyTwo")
            
        
 template:
  one:<router-view name="one"/>
     <hr/>
     two:<router-view name="two"/>
     <hr/>
     three:<router-view name="three"/>
     <hr>
     <router-view></router-view>
     <hr>
     <router-view></router-view>

*******************************************************************
* this.$route来得到当前路由的配置信息。
路由传值:
    1、query
        1、如何传递
            <router-link to="/query?a=1&b=4">query</router-link>|-->
            <router-link :to="name:‘query‘,query:a:3,b:7">query</router-link>|
            <router-link :to="path:‘/query‘,query:a:1,b:3">query</router-link>|
        2、如何接收
            this.$route.query;// a:xx,b:xxx
        优点:刷新数据不会丢失.还可以传递对象
    2、params
        1、如何传  *:params不可以与你的path结合使用。
       <router-link :to="name:‘params‘,params:a:1,b:3">params</router-link>
       2、接收:
        this.$route.params.// a:1,b:3
        缺点:刷新数据不存在。
    3、设置路由
        1、配置路由
            
                name:"setRouter",
                path:"/setRouter/:a/:b",
                component:()=>import("@/views/SetRouter")
            
        2、传
        <router-link :to="path:‘/setRouter/1/2‘">setRouter</router-link>|
        <router-link :to="path:‘/setRouter/1/2‘">setRouter</router-link>|
        3、接收
            this.$route.params


********************************************************************
路由编程式导航:通过你的JS语句来控制你路由的跳转。
this.$router.push("/");
this.$router.push(name:"query",query:a:5,b:8);
this.$router.push(name:"params",params:a:5,b:8);
this.$router.go(-1):后退
this.$router.go(1):前进

  

 

以上是关于Vue 路由的主要内容,如果未能解决你的问题,请参考以下文章

vue路由,二级路由及跳转

vue3添加子路由

Vue路由进阶

Vue 默认路由 与路由嵌套

vue 路由

Vue 路由和Http