详解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 相关文章推荐
intro.js 页面引导简单用法 分享
Aug 06 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
JavaScript reduce和reduceRight详解
Oct 24 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 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
mysq GBKl乱码
2006/11/28 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python文件读取失败怎么处理
2020/06/23 Python
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
大学生旅游业创业计划书
2014/01/29 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
大二学年个人总结
2015/03/03 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python