详解vue路由篇(动态路由、路由嵌套)


Posted in Javascript onJanuary 27, 2019

什么是路由?网络原理中,路由指的是根据上一接口的数据包中的IP地址,查询路由表转发到另一个接口,它决定的是一个端到端的网络路径。

web中,路由的概念也是类似,根据URL来将请求分配到指定的一个'端'。(即根据网址找到能处理这个URL的程序或模块)
使用vue.js构建项目,vue.js本身就可以通过组合组件来组成应用程序;当引入vue-router后,我们需要处理的是将组件(components)映射到路由(routes),然后在需要的地方进行使用渲染。

一、基础路由

1、创建vue项目,执行vue init webpack projectName命令,默认安装vue-router。项目创建后,在主组件App.vue中的HTML部分:

<template>
 <div id="app">
  <router-view/>
 </div>
</template>

上述代码中,<router-view/>是路由出口,路由匹配到的组件将渲染在这里。

2、文件router/index.js中:

import Vue from 'vue' // 导入vue插件
import Router from 'vue-router' // 导入vue-router
import HelloWorld from '@/components/HelloWorld' // 导入HelloWorld组件

Vue.use(Router) // 引入vue-router
export default new Router({
 routes: [
  {
   path: '/', // 匹配路由的根路径
   name: 'HelloWorld',
   component: HelloWorld
  }
 ]
})

以上代码比较简单,一般的导入、引用操作,其中Vue.use()具体什么作用?

个人理解:Vue.use(plugin, arguments)就是执行一个plugin函数,或执行plugin的install方法进行插件注册(如果plugin是一个函数,则执行;若是一个插件,则执行plugin的install方法...);并向plugin或其install方法传入Vue对象作为第一个参数;如果有多个参数,use的其它参数作为plugin或install的其它参数。(具体需要分析源码,在此不再过多解释)

二、动态路由

什么是动态路由?动态路由是指路由器能够自动的建立自己的路由表,并且能够根据实际情况的变化实时地进行调整。

1、在vue项目中,使用vue-router如果进行不传递参数的路由模式,则称为静态路由;如果能够传递参数,对应的路由数量是不确定的,此时的路由称为动态路由。动态路由,是以冒号为开头的(:),例子如下:

export default new Router({
 routes: [
  {
   path: '/',
   name: 'HelloWorld',
   component: HelloWorld
  }, {
   path: '/RouterComponents/:id',
   name: 'RouterComponents',
   component: RouterComponents
  }
 ]
})

2、路由跳转,执行方式有两大类;

第一大类:router-link模式,直接把参数写在to属性里面:

<router-link :to="{name:'RouterComponents',params:{id:110}}">跳转</router-link>

第二大类:$router.push()模式,代码如下:

methods: {
  changeFuc (val) {
   this.$router.push({
    name: 'RouterComponents',
    params: {id: val}
   })
  }
}

或者:

methods: {
  changeFuc (val) {
   this.$router.push({
    path: `/RouterComponents/${val}`,
   })
  }
}

三、嵌套路由

vue项目中,界面通常由多个嵌套的组件构成;同理,URL中的动态路由也可以按照某种结构对应嵌套的各层组件:

export default new Router({
 routes: [
  {
   path: '/', // 根路由
   name: 'HelloWorld',
   component: HelloWorld
  }, {
   path: '/RouterComponents/:id',
   component: RouterComponents,
   children: [
    {
     path: '', // 默认路由
     name: 'ComponentA', // 当匹配上RouterComponents后,默认展示在<router-view>中
     component: ComponentA
    },
    {
     path: '/ComponentB',
     name: 'ComponentB',
     component: ComponentB
    },
   ]
  }
 ]
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js浮动图片的动态效果
Jul 10 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
Nov 12 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
js 概率计算(简单版)
Sep 12 Javascript
layer页面跳转,获取html子节点元素的值方法
Sep 27 Javascript
代码解析React中setState同步和异步问题
Jun 03 Javascript
实例讲解JS中pop使用方法
Jan 27 #Javascript
Vue.js实现的购物车功能详解
Jan 27 #Javascript
JS温故而知新之变量提升和时间死区
Jan 27 #Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 #Javascript
命令行批量截图Node脚本示例代码
Jan 25 #Javascript
Node.js 进程平滑离场剖析小结
Jan 24 #Javascript
Vue.js样式动态绑定实现小结
Jan 24 #Javascript
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
建立文件交换功能的脚本(三)
2006/10/09 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
JavaScript错误处理
2015/02/03 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python 字符串常用方法汇总详解
2019/09/16 Python
Django 框架模型操作入门教程
2019/11/05 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
keras slice layer 层实现方式
2020/06/11 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
新学期红领巾广播稿
2014/01/14 职场文书
学校师德承诺书
2014/05/23 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android