详解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之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
Apr 19 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
React中阻止事件冒泡的问题详析
Apr 12 Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 Javascript
javascript sort()对数组中的元素进行排序详解
Oct 13 Javascript
mpvue实现左侧导航与右侧内容的联动
Oct 21 Javascript
jQuery实现鼠标移入显示蒙版效果
Jan 11 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
最常用的8款PHP调试工具
2014/07/06 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
python 快速排序代码
2009/11/23 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Python使用剪切板的方法
2017/06/06 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
python五子棋游戏的设计与实现
2019/06/18 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
县级文明单位申报材料
2014/05/23 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
java版 联机五子棋游戏
2022/05/04 Java/Android