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 相关文章推荐
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
Jun 15 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
用Webpack构建Vue项目的实践
Nov 07 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
Feb 11 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
原生js实现的金山打字小游戏(实例代码详解)
Mar 16 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
五句话帮你轻松搞定js原型链
Dec 09 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
PHP一些有意思的小区别
2006/12/06 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python封装shell命令实例分析
2015/05/05 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python实现俄罗斯方块游戏
2020/03/25 Python
python实现多进程代码示例
2018/10/31 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
数控机械专业个人的自我评价
2014/01/02 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
学年个人总结范文
2015/03/05 职场文书
民事辩护词范文
2015/05/21 职场文书
小学运动会入场词
2015/07/18 职场文书