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学习笔记6 prototype的提出
Jan 11 Javascript
屏蔽script注入小例子
Nov 12 Javascript
Jquery动态添加输入框的方法
May 29 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
vue中路由参数传递可能会遇到的坑
Dec 07 Javascript
ReactNative实现Toast的示例
Dec 31 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
Apr 28 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 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执行zip与rar解压缩方法实现代码
2010/12/05 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
Python实现粒子群算法的示例
2021/02/14 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
竞赛口号大全
2014/06/16 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏