详解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 相关文章推荐
js自带函数备忘 数组
Dec 29 Javascript
javascript打开新窗口同时关闭旧窗口
Jan 16 Javascript
JavaScript动态调整TextArea高度的代码
Dec 28 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
jQuery中hover方法和toggle方法使用指南
Feb 27 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
树结构之JavaScript
Jan 24 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
js 动态校验开始结束时间的实现代码
May 25 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
php日历[测试通过]
2008/03/27 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php以post形式发送xml的方法
2014/11/04 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
JS与框架页的操作代码
2010/01/17 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
python字符串连接的N种方式总结
2014/09/17 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
在Python中输入一个以空格为间隔的数组方法
2018/11/13 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
详解Python多线程下的list
2020/07/03 Python
高山背包:High Sierra
2017/11/23 全球购物
房地产融资计划书
2014/01/10 职场文书
协议书怎么写
2014/04/21 职场文书
学生检讨书怎么写
2014/10/09 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
故意杀人案辩护词
2015/05/21 职场文书
电影复兴之路观后感
2015/06/02 职场文书
大学生军训感言
2015/08/01 职场文书
自信主题班会
2015/08/14 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers