路由的传参和axios

2018-09-26  本文已影响0人  七缘灬

一.路由的参数
查询字符串:/user/regist?uname=jack&upwd=123
接收:{{$route.query}}
rest风格传参:/user/login/rose/456

路由器的参数实例:

<div id='app'>
       <router-link to='/home'>首页</router-link>
       <router-link to='/user'>用户页</router-link>
       
        <router-view></router-view>
   </div>
    <script src='vue/dist/vue.js'></script>
    <script src='vue-router/dist/vue-router.js'></script>
    <script>
       //2
        var Home={
            template:`
             <div>我是首页</div>
            `
        }
         var User={
            template:`
             <div>

                  我是用户页
                 <p>
                    <router-link to='/user/regist?uname=jack&upwd=123'>注册</router-link>
                  </p>
                 <p>
                    <router-link to='/user/login/rose/456'>登录</router-link>
                  </p>
                   <router-view></router-view>
             </div>
            `
        }
        var Regist={
            template:`
               <div>
               <h1>这是注册页面</h1>
               <a href="">{{$route.query}}</a>
               <a href="">uname:{{$route.query.uname}}</a>
               <a href="">upwd:{{$route.query.upwd}}</a>
              </div>
             `
        } 
         var Login={
            template:`
                 <div>
                   <h1>这是登录页面</h1>
                   <a>{{$route.params}}</a>
                   <a>{{$route.params.uname}}</a>
                   <a>{{$route.params.upwd}}</a>
                 </div>
                `
        }  
      //3.
         const routes=[
             {path:'/',component:Home},
             {path:'/home',component:Home},
             {
                 path:'/user',
                 component:User,
                 children:[
                     {path:'regist',component:Regist},
                     {path:'login/:uname/:upwd',component:Login}
                 ]
             }
         ]
       //4.创建实例
         const router=new VueRouter({
             routes:routes
         })
         
         
      new Vue({
          el:"#app",
          router:router
      })
    </script>

效果如下:


参数1.png 参数2.png

二.axios
1.axios是vue中的ajax 是vue的一个库
2.下载axios:npm install axios
3.开启服务器 $http-server
安装htttp-server:npm install http-server -g

axios实例:

<div id="app">
       <router-link to='/home'>首页</router-link>
       <router-link to='/user'>用户页</router-link>
       <router-view></router-view>
   </div>
    <script src="vue/dist/vue.js"></script>
    <script src="vue-router/dist/vue-router.js"></script>
    <script src="axios/dist/axios.js"></script>
    <script>
        var Home={
            template:`
                <div>
                    <h1>这是首页</h1>
                </div>
            `
        }
        
        var User={
            template:`
                <div>
                    <h2>这是用户页</h2>
                    <table>
                        <thead>
                            <tr>
                                <th>编号</th>
                                <th>名称</th>
                                <th>单价</th>
                                <th>数量</th>
                                <th>小计</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr v-for="value in list">
                                <td>{{value.num}}</td>
                                <td>{{value.pname}}</td>
                                <td>{{value.price}}</td>
                                <td>{{value.count}}</td>
                                <td>{{value.sub}}</td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            `,
            data:function(){
                return{
                   list:null 
                }
            },
            mounted:function(){
                var self=this;
                axios({
                    method:"get",
                    url:'fruit.json'//引入
                }).then(function(resp){
                    console.log(resp.data)
                    self.list=resp.data;
                }).catch(function(err){
                    console.log(err)
                }) 
            }
        }
        
        const routes=[
            {path:'/',component:Home},
            {path:'/home',component:Home},
            {path:'/user',component:User}
        ]
        
       const router = new VueRouter({
           routes:routes,
           linkActiveClass:'active'
       })
        
        new Vue({
            el:'#app',
            router:router
        })
    </script>
[
    {
        "num":1,
        "pname":"apple",
        "price":2,
        "count":1,
        "sub":6
    },
    {
        "num":2,
        "pname":"pear",
        "price":2,
        "count":1,
        "sub":6
    },
    {
        "num":3,
        "pname":"banana",
        "price":2,
        "count":1,
        "sub":6
    }
]

效果如下:


效果.png
上一篇 下一篇

猜你喜欢

热点阅读