详解vue路由


Posted in Javascript onAugust 05, 2020

前端路由和后端路由:

  • 后端路由:对于普通的网站,所有的超链接都是url地址,所有url都对应服务器上对应的资源
  • 前端路由:对于单页面应用程序来说,主要通过url的hash(#)来实现不同页面的切换,同时hash还有一个特点HTTP请求中不会包含hash相关的内容,所以单页面程序中的页面跳转主要用hash实现

在单页面应用程序中这种通过hash来改变页面的方式称作前端路由区别于后端路由

路由的使用

1.创建一个路由对象,当导入vue-router包之后,在window全局对象中就有一个路由的构造函数VueRouter

2.在new路由对象的时候可以传递一个配置对象,这个配置对象的route表示路由器的匹配规则

3.每个路由规则都是一个对象,这个规则对象身上必须有两个属性

  • 属性1 path表示监听哪个路由链接地址
  • 属性2 component,表示如果路由是前面匹配到的path,则展示component属性对应的组件,component属性值必须是一个组件模板对象,不能是组件的引用名称
var login={
      template:'<h2>登录</h2>'
    }
    var register={
      template:'<h2>注册</h2>'
    }
    var routerObj=new VueRouter({
      routes:[
        {path:'/login',component:login},
        {path:'/register',component:register}

      ]
    })

4.router:routerObj将路由规则对象注册到VM实例上,用来监听URL地址的变化,然后展示对应的组件

var vm=new Vue({
          el:'#div1',
          data:{
            
          },
          methods:{
            
            },
          router:routerObj  
          
        })

5.在控制的div中使用

<router-view></router-view>

6.在搜索栏输入对应的匹配规则,login

详解vue路由

7.使用vue官方提供的router-link元素使用,它默认渲染为一个a标签

<router-link to="/login">登录</router-link>
<router-link to="/register">注册</router-link>

路由重定向

1.设置一个默认展示组件,不推荐

{path:'/',component:login},

2.路由redirect重定向,设置默认组件

{path:'/',redirect:'login'},

路由传参

1.如果使用查询字符串 给路由传递参数则不需要修改路由规则的path属性

<router-link to="/login?id=10">登录</router-link>

2.使用query传递参数

var login={
      template:'<h2>登录----{{$route.query.id}}</h2>'
    }

详解vue路由

3.通过params方式传递路由参数,login后面会被解析为id的值

<router-link to="/login/12">登录</router-link>
var login={
      template:'<h2>登录----{{$route.params.id}}</h2>'
    }
{path:'/login/:id',component:login},

路由的嵌套

使用children属性实现路由嵌套,子路由path前不要加/,否则永远以根路径开始请求

<div id="div1"
      <router-link to="/account">account</router-link>
            <router-view></router-view>
    </div>
    <template id="tmp1">
      <div>
        <h2>account 组件</h2>
        <router-link to="/account/login">登录</router-link>
        <router-link to="/account/register">注册</router-link>
        <router-view></router-view>
      </div>
    </template>
var router=new VueRouter({
        routes:[
          {path:'/account',component:account,
          children:[
            {path:'login',component:login},
            {path:'register',component:register}
          ]}
        ]
      })

命名视图

命名视图在components(这时会多个s)后加属性再在使用<router-view></router-view>的时候用name引入,可以使一个页面中存在多个路由

<router-view></router-view>
      <router-view name="left"></router-view>
      <router-view name="main"></router-view>
var router=new VueRouter({
        routes:[
          {path:'/',components:{
            default:header,
            left:leftBox,
            main:mainBox
          }},
          
        ]
      })

以上就是详解vue路由的详细内容,更多关于vue路由的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JQuery上传插件Uploadify使用详解及错误处理
Apr 27 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
Feb 27 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
jQuery实现图片下载代码
Jul 18 jQuery
如何换个角度使用VUE过滤器详解
Sep 11 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
Aug 05 #Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 #Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 #Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 #Javascript
vue实现在进行增删改操作后刷新页面
Aug 05 #Javascript
vue 限制input只能输入正数的操作
Aug 05 #Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 #Javascript
You might like
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
一篇不错的Python入门教程
2007/02/08 Python
python多线程用法实例详解
2015/01/15 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
python 实现图片批量压缩的示例
2020/12/18 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
劳动保障个人工作总结
2015/03/04 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
服务器SVN搭建图文安装过程
2022/06/21 Servers