vue之vue-roter

Posted mj-my

tags:

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

路由
1.子路由:想要子路由的内容完全显示出来,那么就创建一个空路由,存放router-view,用来显示子理由的。

    {
            path:‘/news‘,  //新闻页面
            component:NewsN2,    //用一个空的路由模板代替。提供<router-viwe>的渲染视图。
            name:‘NewsN2‘,
            children:[
                {
                    path:‘/‘, 、、默认的就是新闻页面
                    component:News,
                    name:‘News‘
                },
                {
                    path:‘n1‘,   //这个就顺其自然的就是新闻页的子页面了。也是提供<router-viwe>的渲染视图。
                    component:nn,
                    name:‘nn‘,
                    children:[
                        {
                            path:"/",  //这个才是真的的子页面,因为nn也是代替NewsN1这个模板的。
                            component:NewsN1,
                            name:"NewsN1",
                        },
                        {
                            path:"newsS", //这个自然就是NewsN1的子页面,也就是新闻的孙子页面。
                            component:newsS,
                            name:"newsS",
                        }
                    ]
                },
                
            ]
        },

 


2.路由传参(name和params配合):
    路由传参目前有两种方式。
    1.通过配置路由中的name值传参。
    2.通过绑定router-link :to="{name:"唯一的name值",params:{键:值}}",
    3.由于第二步的作用,那么也可以通过props方法,父组件传值给子组件接收,同样也可以通过vuex方式传。
    

    1.路由name传参。
 

  路由文件:
    routes:[
        {path:‘/‘,component:index,name:‘index‘},
        {path:‘/news‘,component:news,name:‘news‘}
    ];
    html:
    <div>{{$route.name}}</div> //index页面:显index的值,news页面:显news的值,

 





    2.绑定router-link。它是通过拿到唯一的name值去绑定。
  

 路由文件:
    routes:[
        {path:‘/‘,component:index,name:‘index‘},
        {path:‘/news‘,component:news,name:‘news‘}
    ];
    html:header页面。
    (固定传值)
    <div><router-link :to="{name:"news",params:{id:123}}"></div> //这个是当跳转到news页面会显示123。
    (动态传值)
    <div><router-link :to="{name:"news",params:{id:this.data,idg:this,res}}"></div> //这个是当跳转到news页面会显示123。
    
    <script>
        export default{
            name:"header",
            data:function(){
                return:{
                    data:"你好",
                    res:"朋友"
                }
            }
        }
    </script>
    
    html:news页面。
    (固定值)
    <div>{{$route.params.id}}</div> //显示:123,
    (动态值)
    <div>{{$route.params.id}}{{$route.params.idg}}</div> //显示:你好朋友。

 



3.路由传参(path和query配合).

  

 //header.html
    路由通过绑定to,路径来跳转,使用query获取值。
    <router-link to="/Me"><li class="aildeList" >登录</li></router-link>
        <ol>
            <router-link :to="{path:‘/Me/userName‘,query:{aaa:‘bbb‘}}"><li class="aildeList" >user</li></router-link>
        </ol>
    
    //router.js
    {
        //子组件通过绑定路径,使用query获取值。
        path:‘/me‘,
        component:Me,
        name:‘Me‘,
        children:[
            {path:":usename",name:‘user‘,component:meUser}
        ]
    },
    
    //Me/meuse.html
    <div id="user">
    <div class="topScroll"></div>
        我是me页面的子页面,我可以通过header组件中的router-link :to="{path:‘me/user‘,query:{aaa:‘bbb‘}}"
        来传递query参数,以及在路由绑定的path。
        query比name更好用。可以拉取数据库的值。name也行,但是没有query好用。
        {{$route.query.aaa}}
    </div>

 



4.页面传参,

    1.简单点就是父子组件传值。方法通过props,$emit("方法名",aguments);aguments:多个值。vuex提交数据。

5.路由钩子


 

  {
        path:‘/‘,
        component:Index,
        name:‘Index‘,
        //路由钩子,在执行这个页面之前做的事情。
        beforeEnter:(to,from,next)=>{
            console.log(to);
            console.log(from);
            next({path:‘/Product‘});
        }
    },

 




6.路由重定向


 

  {
        path:‘*‘,
        component:Page404,
        name:‘paeg404‘,
        redirect:‘Me‘ //不用‘/‘
    }
    {
        path:‘*‘,
        component:Page404,
        name:‘paeg404‘,
        redirect:bgg=>{
            const{hash,params,query}=bgg;
            if(params.id=="110") //当这个路由绑定的id是110时执行跳转。<router-link :to="{name:‘NewsN1‘,params:{id:110}}"><li>110</li></router-link>
            return ‘/‘  //跳到你想要的页面。
        }
    }

 




ajax插件请求
1.vue-resource。

    1.npm install vue-resource --save
    2.在main中引入,然后Vue.use("应用名");
    3.在new Vue({})注册。
    
```
    this.$http.get("url",)
    this.$http.get("url",{后台要的参数:参数,后台要的参数:参数...},)
```

以上是关于vue之vue-roter的主要内容,如果未能解决你的问题,请参考以下文章

vscode之快速生成vue模板

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段(vue主模板)

Vue组件之全局组件与局部组件

Vue组件之全局组件与局部组件