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 prototype,executing,context,closure
Dec 24 Javascript
JS option location 页面跳转实现代码
Dec 27 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
jquery实现的代替传统checkbox样式插件
Jun 19 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
原生js轮播(仿慕课网)
Feb 15 Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
dts文件中删除一个node或属性的操作方法
Aug 05 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
ztree+ajax实现文件树下载功能
May 18 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
ajax 的post方法实例(带循环)
2011/07/04 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP加密解密类实例分析
2015/04/20 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
JS实现小星星特效
2019/12/24 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
python中的格式化输出用法总结
2016/07/28 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python新手如何理解循环加载模块
2020/05/29 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
应届生找工作求职信
2014/06/24 职场文书
好人好事新闻稿
2015/07/17 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
SQL Server 中的事务介绍
2022/05/20 SQL Server
docker 制作mysql镜像并自动安装
2022/05/20 Servers