详解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 相关文章推荐
JavaScript Event学习第七章 事件属性
Feb 07 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
AngularJS 依赖注入详解及示例代码
Aug 17 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
Javascript刷新页面的实例
Sep 23 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
手把手教你实现 Promise的使用方法
Sep 02 Javascript
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
解决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
由php if 想到的些问题
2008/03/22 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python实现石头剪刀布程序
2021/01/20 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python中rc1什么意思
2020/06/19 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
525心理活动总结
2014/07/04 职场文书
租房协议书范文
2014/08/20 职场文书
个人买房协议书范本
2014/10/06 职场文书
2015暑假社会调查报告
2015/07/13 职场文书