Vue Router 是 Vue.js 的官方路由管理器,它可以帮助我们实现单页应用(Single Page Application,SPA)的前端路由。

  Vue Router 基于 Vue.js 的组件化思想,将路由视为组件,并提供了多种方式来定义路由和渲染组件。Vue Router 可以通过 URL 地址来控制页面的显示内容,而不需要刷新整个页面。它也支持通过编程的方式进行路由跳转和参数传递。

  Vue Router 的主要特点包括:

    1. 嵌套路由:Vue Router 支持嵌套路由,可以将路由配置进行组合和嵌套,从而实现更加灵活和复杂的页面布局。

    2. 路由参数:Vue Router 支持动态路由参数,可以通过参数传递来控制页面的显示内容。

    3. 编程式路由:Vue Router 支持编程式路由,可以通过编写代码来进行路由跳转和参数传递。

    4. 导航守卫:Vue Router 支持导航守卫,可以在路由跳转前、后、以及跳转取消时执行相应的钩子函数。

    5. 路由懒加载:Vue Router 支持路由懒加载,可以根据需要动态加载路由组件,从而提高应用的性能和加载速度。

  总之,Vue Router 是 Vue.js 的官方路由管理器,它可以帮助我们实现单页应用的前端路由,并提供了多种方式来定义路由和渲染组件,支持嵌套路由、动态路由参数、编程式路由、导航守卫、路由懒加载等特性,是 Vue.js 开发中不可或缺的重要组件之一。

 
  Vue Router开发实例: 

下面是一个简单的 Vue Router 实例,演示了如何通过 Vue Router 实现路由跳转和参数传递:

  1. 首先,在项目中安装 Vue Router,可以使用 npm 或 yarn 安装:

    • npm install vue-router
  1. 然后,在 Vue.js 项目中创建一个 router.js 文件,用于配置路由:

    • import Vue from 'vue'
      import Router from 'vue-router'
      import Home from './views/Home.vue'
      import About from './views/About.vue' Vue.use(Router) export default new Router({
      routes: [
      {
      path: '/',
      name: 'home',
      component: Home
      },
      {
      path: '/about/:id',
      name: 'about',
      component: About
      }
      ]
      })

      在这个例子中,我们通过 import 导入了 Vue、Vue Router 以及两个页面组件 Home 和 About,然后通过 Vue.use(Router) 注册了 Vue Router 插件,并创建了一个 Router 实例。在 Router 实例的 routes 配置中,我们定义了两个路由规则,分别对应了两个页面组件。其中,第二个路由规则中的 :id 表示这是一个动态路由参数,可以通过参数传递来控制页面的显示内容。

  1. 在 main.js 文件中引入 router.js,并将 router 对象挂载到 Vue 实例中:

    • import Vue from 'vue'
      import App from './App.vue'
      import router from './router'

      new Vue({
      router,
      render: h => h(App)
      }).$mount('#app')

      在这个例子中,我们通过 import 引入了 router.js,然后将 router 对象挂载到 Vue 实例中的 router 属性中。这样,就可以在 Vue 实例中使用 Vue Router 提供的路由功能了。

  1. 在页面组件中使用路由跳转和参数传递:

    • Home.vue:
    • <template>
      <div>
      <h1>Home Page</h1>
      <button @click="gotoAbout">Go to About Page</button>
      </div>
      </template> <script>
      export default {
      methods: {
      gotoAbout() {
      this.$router.push({ name: 'about', params: { id: 123 }})
      }
      }
      }
      </script>
    • About.vue:
    • <template>
      <div>
      <h1>About Page</h1>
      <p>ID: {{ $route.params.id }}</p>
      </div>
      </template> <script>
      export default {
      mounted() {
      console.log(this.$route.params.id)
      }
      }
      </script>

      在这个例子中,我们在 Home 页面组件中定义了一个按钮,当按钮被点击时,使用 this.$router.push 方法进行路由跳转,并通过 name 和 params 属性指定了目标路由和路由参数。在 About 页面组件中,我们通过 $route.params.id 来获取路由参数,并在 mounted 钩子函数中输出参数值。

这就是一个简单的 Vue Router 实例,演示了如何通过 Vue Router 实现路由跳转和参数传递。需要注意的是,Vue Router 的使用方法还有很多种,可以根据具体的业务需求选择不同的方法。

      例如,我们还可以通过路由钩子函数来对路由进行拦截和处理:

import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue' Vue.use(Router) const router = new Router({
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/about/:id',
name: 'about',
component: About
}
]
}) router.beforeEach((to, from, next) => {
console.log('路由拦截:', to.name)
next()
}) export default router

在这个例子中,我们通过 router.beforeEach 方法定义了一个路由拦截器,当用户进行路由跳转时,这个方法会被触发,可以在这个方法中进行一些业务逻辑处理,例如记录用户访问记录、校验用户权限等。当处理完成后,需要调用 next 方法,才能继续进行路由跳转。

除了 beforeEarch 方法,Vue Router 还提供了很多其他的路由钩子函数,例如 afterEach、beforeResolve、beforeEnter 等,可以根据具体的业务需求选择不同的钩子函数。

总的来说,Vue Router 是 Vue.js 中非常重要的一个插件,它提供了路由功能和路由钩子函数,可以方便地实现页面之间的跳转和传参,并且可以对路由进行拦截和处理,提高应用的可用性和安全性。

vue全家桶进阶之路18:Vue Router的更多相关文章

  1. Vue全家桶了解一下(待补充)

    vue全家桶了解一下 一.vue+vue-router+vuex+axios1.vue:使用vue-cli,生成最基本的vue项目2.vue-router:vue项目中的路由管理插件3.vuex:vu ...

  2. Vue 全家桶 + Electron 开发的一个跨三端的应用

    代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...

  3. 升级vue全家桶过程记录

    背景 如果你使用了element-ui的el-tabs组件,并且想要单独升级element-ui至2.10.0,你会发现,使用了el-tabs组件的页面只要打开就卡死.原因是element-ui~2. ...

  4. vue证明题一,vue全家桶的构成

    简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...

  5. 用 Vue 全家桶二次开发 V2EX 社区

    一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...

  6. Vue全家桶

    简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...

  7. 从零开始系列之vue全家桶(3)安装使用vuex

    什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...

  8. 使用vue全家桶制作博客网站

    前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...

  9. 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程

    使用vue全家桶制作博客网站   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...

  10. Vue全家桶介绍

    一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...

随机推荐

  1. CUDA基础2

    二. 1.指令调度,对于多条指令怎样调度让他们运行更快. 对于有冲突的两条指令,采用寄存器重命名技术. 2.指令重排  乱序执行,为了获取最大的吞吐率.  增大功耗 增加芯片面积. 3.缓存,容量越大 ...

  2. CentOS /RHEL 系统更新安全补丁的方法

    在 Linux 系统上,其中一个最重要的需求就是保持定期更新最新的安全补丁,或者为相应的 Linux 版本更新可用的安全补丁.在这篇文章中,我们将分享如何在 CentOS/RHEL 7/6 版本中设置 ...

  3. LeetCode 周赛 336,多少人直接 CV?

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天早上是 LeetCode 第 336 场周赛,你参加了吗?这场周赛整体质量比较高,但 ...

  4. oracle学习笔记1 安装 虚拟机 plsql 连接 oracle

    第一步就是安装 为了节省资源,运行起来更快捷,首先是在电脑上安装好vm虚拟机, 新建虚拟机,安装xp,也就是把xp光盘文件导入, 接着在虚拟机中下载oracle,解压的话会用到WinRAR,也一并导入 ...

  5. 布局管理器wx.BoxSizer

    b = wx.BoxSizer( wx.VERTICAL ) b.Add(self.notebook1, 1, wx.EXPAND) self.parent.SetSizer(b) 解析以上代码原理, ...

  6. .NET应用系统的国际化-多语言翻译服务

    上篇文章我们介绍了 .NET应用系统的国际化-基于Roslyn抽取词条.更新代码 系统国际化改造整体设计思路如下: 提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言.界面.模块统一管理多有 ...

  7. [Linux]U盘启动盘安装CentOS7系统(LiveGNOME版)

    1 准备:工具 U盘 容量:视CentOS具体版本需要而定.推荐4G+ UltraISO(软碟通) ISO制作工具 / U盘启动盘刻录工具 2 制作:U盘启动盘 step1 下载CentOS镜像 Ce ...

  8. shell读取配置文件-sed命令

    在编写启动脚本时,涉及到读取配置文件,特地记录下shell脚本读取启动文件的方式.主要提供两种格式的读取方式,方式一配置文件采用"[]"进行分区,方式二配置文件中需要有唯一的配置项 ...

  9. socket搭建web服务端

    import socket from threading import Thread import time def html(conn): time_tag = str(time.time()) p ...

  10. go-easy-utils 2.0 正式发布,全面支持泛型和any

    介绍 这是一个基于 Go 语言开发的通用数据类型处理工具类,帮助开发者在业务代码实现中处理常见的数据类型和数据操作.可以让您专注于您的业务代码的实现,而免去处理基本数据类型转换和验证的功能.该工具库无 ...