您好,欢迎访问一九零五行业门户网

vue-router组件间参数相互传递的方法

这次给大家带来vue-router组件间参数相互传递的方法,vue-router组件参数相互传递的注意事项有哪些,下面就是实战案例,一起来看一下。
通过vuerouter来实现组件之间的跳转:参数的传递,具体内容如下
login ---用户名--->main
①明确发送方和接收方
②配置接收方的路由地址
{path:'/mytest',component:testcomponent}
-->
{path:'/mytest/:id',component:testcomponent}
③接收方获取传递来的数据
this.$route.params.id
④跳转的时候,发送参数
this.$router.push('/mytest/20')
<router-link :to="'/mytest'+id">跳转</router-link>
代码:
<!doctype html> <html>  <head>  <meta charset="utf-8">  <title>传参</title>  <script src="js/vue.js"></script>  <script src="js/vue-router.js"></script>  </head>  <body>  <p id="container">   <p>{{msg}}</p>   <!--指定容器 -->   <router-view></router-view>  </p>  <script>  //创建主页面组件   var mymain = vue.component(main-component,{    //保存登录传递过来的数据    data:function(){   return {    uname:''   }   },    template:`     <p>      <h1>主页面用户名:{{uname}}</h1>     </p>    `,    //挂载该组件时自动拿到数据    beforemount:function(){     //接收参数     console.log(this.$route.params);     this.uname = this.$route.params.myname ;    }   })   //创建登录页面组件   var mylogin = vue.component(login-component,{    //保存用户输入的数据    data:function(){     return {      userinput:     }    },    methods:{     tomain:function(){      //跳转到主页面,并将用户输入的名字发送过去      this.$router.push(/main/+this.userinput);      console.log(this.userinput);     }    },    template:`     <p>      <h1>登录页面</h1>      <input type="text" v-model="userinput" placeholder="请输入用户名">      <button @click="tomain">登录到主页面</button>      <br>      <router-link :to="'/main/'+userinput">登录到主页面</router-link>     </p>    `   })   var notfound = vue.component(not-found,{    template:`     <p>      <h1>404 page not found</h1>      <router-link to="/login">返回登录页</router-link>     </p>    `   })   //配置路由词典   const myroutes = [    {path:,component:mylogin},    {path:/login,component:mylogin},     //注意冒号,不用/否则会当成地址    {path:/main/:myname,component:mymain},    //没有匹配到任何页面则跳转到notfound页面    {path:*,component:notfound}   ]   const myrouter = new vuerouter({    routes:myroutes   })   new vue({    router:myrouter,    el:#container,    data:{     msg:hello vuejs    }   }) // 注意,路由地址  </script>  </body> </html>
<!doctype html> <html>  <head>  <meta charset="utf-8">  <title>传参练习</title>  <script src="js/vue.js"></script>  <script src="js/vue-router.js"></script>  </head>  <body>  <p id="container">   <p>{{msg}}</p> <!-- -->   <router-view></router-view>  </p>  <script> //创建产品列表组件   var mylist = vue.component(product-list,{    //保存产品列表的数据    data:function(){     return{      productlist:[苹果,华为,三星,小米,vivo]     }    },    template:`     <p>      <h4>这是列表页</h4>      <ul>       <li v-for="(tmp,index) in productlist">       //将index传递过去        <router-link v-bind:to="'/detail/'+index">{{tmp}}</router-link>       </li>      </ul>     </p>    `   }) //详情页组件    var mydetail = vue.component(product-detail,{    //保存传递过来的index    data:function(){     return{      myindex:     }    },    //在挂载完成后,将接收到的index赋值给myindex    mounted:function(){      this.myindex = this.$route.params.id;    },    template:`     <p>      <h4>这是详情页</h4>      <p>这是id为:{{myindex}}的产品</p>     </p>    `   }) //页面找不到的时候   var notfound = vue.component(not-found,{    template:`     <p>      <h1>404 page not found</h1>     </p>    `   }) // 配置路由词典   const myroutes = [    {path:,component:mylist},    {path:/list,component:mylist},    {path:/detail/:id,component:mydetail},    {path:*,component:notfound},   ]   const myrouter = new vuerouter({    routes:myroutes   })   new vue({    router:myrouter,    el:#container,    data:{     msg:hello vuejs    }   })  </script>  </body> </html>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
mint-ui loadmore上拉加载与下拉刷新冲突处理方法
微信小程序怎样使图片上传至服务器
以上就是vue-router组件间参数相互传递的方法的详细内容。
其它类似信息

推荐信息