详解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将string类型转换int类型
Dec 09 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
node.js基于mongodb的搜索分页示例
Jan 22 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
React key值的作用和使用详解
Aug 23 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
解决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
PHP4实际应用经验篇(6)
2006/10/09 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
php浏览历史记录的方法
2015/03/10 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
js实现密码强度检验
2017/01/15 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
Python之文字转图片方法
2018/05/10 Python
Windows下安装Scrapy
2018/10/17 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
python 制作磁力搜索工具
2021/03/04 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
PHP中如何使用Cookie
2015/10/28 面试题
《乡下孩子》教学反思
2014/04/17 职场文书
海洋科学专业求职信
2014/08/10 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
职工食堂管理制度
2015/08/06 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
24年收藏2000多部退役军用电台
2022/02/18 无线电