热门关键字:
jquery > jquery教程 > html5 > Vue学习之路由vue-router传参及嵌套小结(十)

Vue学习之路由vue-router传参及嵌套小结(十)

674
作者:管理员
发布时间:2020/3/12 15:43:25
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=1031

  一、路由传递参数:

  1、使用query传值:

  <!DOCTYPEhtml>

  <htmllang="en">

  <head>

  <metacharset="UTF-8"/>

  <metaname="viewport"content="width=device-width,initial-scale=1.0"/>

  <metahttp-equiv="X-UA-Compatible"content="ie=edge"/>

  <title>路由</title>

  <scriptsrc="./lib/vue.js"></script>

  <!--1.安装vue-router路由模块-->

  <scriptsrc="./lib/vue-router.js"></script>

  </head>

  <body>

  <divid="app">

  <!--如果在路由中,使用查询字符串,给路由传递参数,则不需要修改路由规则的path属性-->

  <router-linkto="/login?id=10&name=zs">登录</router-link>

  <router-linkto="/register">注册</router-link>

  <router-view></router-view>

  </div>

  <script>

  varlogin={

  template:

  "<h1>登录--{{$route.query.id}}--{{$route.query.name}}</h1>",

  data(){

  return{

  msg:"123"

  };

  },

  creadtd(){

  //组件的生命周期钩子函数

  //console.log(this.$route);

  console.log(this.$route.query.id);

  }

  };

  varregister={

  template:"<h1>注册组件</h1>"

  };

  varrouterObj=newVueRouter({

  routes:[

  {path:"/login",component:login},

  {path:"/register",component:register}

  ]

  });

  varvm=newVue({

  el:"#app",

  data:{},

  methods:{},

  router:routerObj

  });

  </script>

  </body>

  </html>

  2、使用params传参:

  地址上需要设置下第二个参数ID

  <!DOCTYPEhtml>

  <htmllang="en">

  <head>

  <metacharset="UTF-8"/>

  <metaname="viewport"content="width=device-width,initial-scale=1.0"/>

  <metahttp-equiv="X-UA-Compatible"content="ie=edge"/>

  <title>路由</title>

  <scriptsrc="./lib/vue.js"></script>

  <!--1.安装vue-router路由模块-->

  <scriptsrc="./lib/vue-router.js"></script>

  </head>

  <body>

  <divid="app">

  <!--如果在路由中,使用查询字符串,给路由传递参数,则不需要修改路由规则的path属性-->

  <router-linkto="/login/12">登录</router-link>

  <router-linkto="/register">注册</router-link>

  <router-view></router-view>

  </div>

  <script>

  varlogin={

  template:"<h1>登录--{{$route.params.id}}</h1>",

  data(){

  return{

  msg:"123"

  };

  },

  creadtd(){

  //组件的生命周期钩子函数

  console.log(this.$route.params.id);

  }

  };

  varregister={

  template:"<h1>注册组件</h1>"

  };

  varrouterObj=newVueRouter({

  routes:[

  //除了上面的字母的不同外,这里还需要设置下添加的第二个参数id

  {path:"/login/:id",component:login},

  {path:"/register",component:register}

  ]

  });

  varvm=newVue({

  el:"#app",

  data:{},

  methods:{},

  router:routerObj

  });

  </script>

  </body>

  </html>

  二、嵌套路由children:

  <!DOCTYPEhtml>

  <htmllang="en">

  <head>

  <metacharset="UTF-8"/>

  <metaname="viewport"content="width=device-width,initial-scale=1.0"/>

  <metahttp-equiv="X-UA-Compatible"content="ie=edge"/>

  <title>路由</title>

  <scriptsrc="./lib/vue.js"></script>

  <!--1.安装vue-router路由模块-->

  <scriptsrc="./lib/vue-router.js"></script>

  </head>

  <body>

  <divid="app">

  <router-linkto="/account">Account</router-link>

  <router-view></router-view>

  </div>

  <templateid="tmp1">

  <div>

  <h1>这是Account组件</h1>

  <router-linkto="/account/login">登录</router-link>

  <router-linkto="/account/register">注册</router-link>

  <router-view></router-view>

  </div>

  </template>

  <script>

  varaccount={

  template:"#tmp1"

  };

  varlogin={

  template:"<h3>登录组件</h3>"

  };

  varregister={

  template:"<h3>注册组件</h3>"

  };

  varrouter=newVueRouter({

  routes:[

  {

  path:"/account",

  component:account,

  //使用children属性,实现子路由,同时子路由的path前面,不要带/,

  //否则永远以根路径开始请求,这样不方便我们用户去理解URL地址

  children:[

  {

  path:"login",

  component:login

  },

  {

  path:"register",

  component:register

  }

  ]

  }

  ]

  });

  varvm=newVue({

  el:"#app",

  data:{},

  methods:{},

  router

  });

  </script>

  </body>

  </html>






如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:html
友荐云推荐