当前位置: 移动技术网 > IT编程>脚本编程>vue.js > Vue-Router来实现组件间跳转的三种方法

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

成都二诊,上水软管,西南四川方言网

通过vuerouter来实现组件之间的跳转,供大家参考,具体内容如下

提供了3种方式实现跳转:

①直接修改地址栏中的路由地址

<!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实现跳转

<router-link to="/myregister">注册</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>

③通过js的编程的方式

jumptologin: function () {
this.$router.push('/mylogin');
}

代码

<!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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网