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 相关文章推荐
HTML代码中标签的全部属性 中文注释说明
Mar 26 Javascript
jquery ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
May 05 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
Nov 03 Javascript
AngularJS service之select下拉菜单效果
Jul 28 Javascript
js微信分享实现代码
Oct 11 Javascript
vue组件学习教程
Sep 09 Javascript
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 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/10/09 PHP
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
浅析is_writable的php实现
2013/06/18 PHP
php session 写入数据库
2016/02/13 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
vue 子组件向父组件传值方法
2018/02/26 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
JS中的const命令你真懂它吗
2020/03/08 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python 安装impala包步骤
2020/03/28 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
思想政治自我鉴定
2013/10/06 职场文书
政府个人对照检查材料
2014/08/28 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android