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


Posted in Javascript onNovember 07, 2017

通过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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从JavaScript 到 JQuery (1)学习小结
Feb 12 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
JavaScript的兼容性与调试技巧
Nov 22 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
JavaScript学习笔记之函数记忆
Sep 06 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
May 14 Javascript
JS实现吸顶特效
Jan 08 Javascript
Node.js fs模块原理及常见用途
Oct 22 Javascript
微信小程序 根据不同用户切换不同TabBar
Apr 21 Javascript
vue 运用mock数据的示例代码
Nov 07 #Javascript
vue环境搭建简单教程
Nov 07 #Javascript
用Webpack构建Vue项目的实践
Nov 07 #Javascript
vue双花括号的使用方法 附练习题
Nov 07 #Javascript
vue组件生命周期详解
Nov 07 #Javascript
Angular2的管道Pipe的使用方法
Nov 07 #Javascript
浅谈react 同构之样式直出
Nov 07 #Javascript
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
PHP Undefined index报错的修复方法
2011/07/17 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
Node.js 的模块知识汇总
2017/08/16 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python numpy 按行归一化的实例
2019/01/21 Python
分析经典Python开发工程师面试题
2019/04/08 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
幼儿园实习自我鉴定
2013/12/15 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
节水口号标语
2014/06/19 职场文书
金融管理专业求职信
2014/07/10 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
销售员自我评价
2015/03/11 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
python tkinter模块的简单使用
2021/04/07 Python
详解Java实现数据结构之并查集
2021/06/23 Java/Android
python获取字符串中的email
2022/03/31 Python