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 相关文章推荐
document.documentElement &amp;&amp; document.documentElement.scrollTop
Dec 01 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
基于jquery的实现简单的表格中增加或删除下一行
Aug 01 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
node.js express安装及示例网站搭建方法(分享)
Aug 22 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 Javascript
基于jQuery实现一个marquee无缝滚动的插件
Mar 09 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
jQuery实现简单飞机大战
Jul 05 jQuery
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连接mssql的一些相关经验及注意事项
2013/02/05 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
利用python求相邻数的方法示例
2017/08/18 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python如何输出反斜杠
2020/06/18 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
工程造价专业大专生求职信
2013/10/06 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
幸福终点站观后感
2015/06/04 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL