Vue-Router来实现组件间跳转的三种方法

Posted zhaosijia----1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue-Router来实现组件间跳转的三种方法相关的知识,希望对你有一定的参考价值。

一、通过js的编程的方式

<!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>
 <div id="container">
    <p>{{msg}}</p>
<!--通过router-view指定盛放组件的容器 -->
    <router-view></router-view>
 
  </div>
  <script>
    var testLogin = Vue.component("login",{
      template:`
        <div>
          <h1>这是我的登录页面</h1>
          <router-link to="/myRegister">注册</router-link>
        </div>
      `
      /*to后面是路由地址*/
    })
    var testRegister = Vue.component("register",{
      methods:{
        jumpToLogin:function(){
          this.$router.push(‘/myLogin‘);
        }
      },
      template:`
        <div>
          <h1>这是我的注册页面</h1>
          <button @click="jumpToLogin">注册完成,去登录</button>
        </div>
      `
    })
    //配置路由词典
    const  myRoutes =[
      {path:‘‘,component:testLogin},
      {path:‘/myLogin‘,component:testLogin},
      {path:‘/myRegister‘,component:testRegister}
    ]
 
    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>
 <div id="container">
    <p>{{msg}}</p>
<!--通过router-view指定盛放组件的容器 -->
    <router-view></router-view>
  </div>
  <script>
    var testLogin = Vue.component("login",{
      template:`
        <div>
          <h1>这是我的登录页面</h1>
        </div>
      `
    })
    var testRegister = Vue.component("register",{
      template:`
        <div>
          <h1>这是我的注册页面</h1>
        </div>
      `
    })
    //配置路由词典
    //对象数组
    const  myRoutes =[
    //当路由地址:地址栏中的那个路径是myLogin访问组件
    //组件是作为标签来用的所以不能直接在component后面使用
    //要用返回值
      //path:‘‘指定地址栏为空:默认为Login页面
      {path:‘‘,component:testLogin},
      {path:‘/myLogin‘,component:testLogin},
      {path:‘/myRegister‘,component:testRegister}
    ]
 
    const myRouter = new VueRouter({
      //myRoutes可以直接用上面的数组替换
      routes:myRoutes
    })
    new Vue({
      router:myRouter,
      //或者:
      /*
        router:new VueRouter({
            routes:[
              {path:‘/myLogin‘,component:testLogin},
      {path:‘/myRegister‘,component:testRegister}
            ]
        })
      */
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

三、通过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>
 <div id="container">
    <p>{{msg}}</p>
<!--通过router-view指定盛放组件的容器 -->
    <router-view></router-view>
 
  </div>
  <script>
    var testLogin = Vue.component("login",{
      template:`
        <div>
          <h1>这是我的登录页面</h1>
          <router-link to="/myRegister">注册</router-link>
        </div>
      `
      /*to后面是路由地址*/
    })
    var testRegister = Vue.component("register",{
      template:`
        <div>
          <h1>这是我的注册页面</h1>
        </div>
      `
    })
    //配置路由词典
    const  myRoutes =[
      {path:‘‘,component:testLogin},
      {path:‘/myLogin‘,component:testLogin},
      {path:‘/myRegister‘,component:testRegister}
    ]
 
    const myRouter = new VueRouter({
      routes:myRoutes
    })
    new Vue({
      router:myRouter,
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

 

以上是关于Vue-Router来实现组件间跳转的三种方法的主要内容,如果未能解决你的问题,请参考以下文章

Vue中实现路由跳转的三种方式详细分解

vue中实现路由跳转的三种方式(超详细整理)

vue路由跳转的三种方式

iOS 总结APP间跳转的常用以及非常用需求 APP跳转Safari APP跳转APP

vue传参的三种方式

vue-router路由跳转原理