Vue路由vue-router怎么应用

发布时间:2022-09-02 09:25:12 作者:iii
来源:亿速云 阅读:129

这篇文章主要讲解了“Vue路由vue-router怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue路由vue-router怎么应用”吧!

前端路由的发展历程

路由的概念在软件工程中出现,最早是在后端路由中实现的,原因是web的发展主要经历了这样一些阶段:

1. 后端路由阶段

早起的网站开发整个HTML页面是由服务器来渲染的,即服务器直接生产渲染好对应的HTML页面, 返回给客户端进行展示。如图:

Vue路由vue-router怎么应用

优点:利于SEO优化

缺点:整个页面由后端人员维护,HTMl代码以及数据对应逻辑会混合一起,编写和维护十分糟糕。

2. 前后端分离

**前端渲染:**每次请求涉及到的静态资源都会从静态资源服务器获取,这些资源包括HTML+CSS+JS,然后在前端对这些请求回来的资源进行渲染。客户端的每一次请求,都会从静态资源服务器请求文件,这个时候的后端就只是负责提供API了。

前后端分离:

单页面(SPA)富应用阶段:

认识 vue-router

安装 Vue-Router

npm install vue-router

步骤:

Vue路由vue-router怎么应用

Vue路由vue-router怎么应用

import { createRouter, createWebHashHistory } from "vue-router"

import Home from "../views/Home.vue"
import About from "../views/About.vue"
// 创建一个路由:映射关系
const router = new createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: "/",
      redirect: "/home"
    },
    {
      path: "/home",
      component: Home
    },
    {
      path: "/about",
      component: About
    }
  ]
})

export default router

补充:路由的其他属性

name属性:记录路由独一无二的名称;

meta属性:自定义数据

router-link(补充)

router-link事实上有很多属性可以配置:

路由懒加载

问题:当打包构建应用时,JavaScript 包会变得非常大,影响页面加载

解决:把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。同时也可提高首屏渲染的效率。其中,Vue-Router 默认就支持动态来加载组件。因为component可以传入一个组件,也可以接收一个函数,该函数需要放回一个Promise。import函数就是返回一个Promise

Vue路由vue-router怎么应用

动态路由

1. 动态路由的基本匹配

将给定匹配模式的路由映射到同一个组件。以根据自己不同的需求加载不同的路由,做到不同的实现及页面的渲染。

动态路由的使用一般是结合角色权限控制一起使用。

例如:有一个 User 组件,它应该对所有用户进行渲染,但是用户的ID是不同的。我们可以在路径中使用一个动态字段来实现,我们称之为 路径参数。接着在中实现跳转。

Vue路由vue-router怎么应用

Vue路由vue-router怎么应用

2. 获取动态路由的值

获取动态路由的值(例如上面例子中 用户id 123),在template中,直接通过 $route.params获取值。

Vue路由vue-router怎么应用

3. NotFound

对于没有匹配到相应的路由,我们可以给用户匹配一个固定的页面。通过 $route.params.pathMatch获取到传入的参数

Vue路由vue-router怎么应用

路由的嵌套

组件的本身也有组件需要内部切换,这个时候就可以采用嵌套路由,在第一层路由中也使用router-view来占位之后需要渲染的组件。

Vue路由vue-router怎么应用

{
      path: "/home",
      component: () => import("../views/Home.vue"),
      children: [
        {
          path: "/show",
          component: () => import("../views/component/show.vue")
        },
        {
          path: "/detail",
          component: () => import("../views/component/detail.vue")
        }
      ]
    },

编程式导航

1. 代码的页面跳转

通过代码来控制页面的跳转

栗子:点击一个按钮跳转页面

Vue路由vue-router怎么应用

2. query 方式的参数

通过query的方式来传递参数,在界面中通过 $route.query 来获取参数。

Vue路由vue-router怎么应用

3. 替换当前的位置

使用push的特点是压入一个新的页面,那么在用户点击返回时,上一个页面还可以回退,但是如果我们希望当前页面是一个替换 操作,那么可以使用replace。这个时候已经不能回退了。

4. 页面的前后跳转

动态添加路由

场景:根据用户的不同权限,注册不同的路由

Vue路由vue-router怎么应用

补充:路由的其他方法

删除路由有以下三种方式:

router.hasRoute():检查路由是否存在。

router.getRoutes():获取一个包含所有路由记录的数组。

路由导航守卫

vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航

全局的前置守卫==beforeEach==是在导航触发时会被回调的,它有两个参数:

返回值:

Vue路由vue-router怎么应用

1. 登录守卫功能

场景:只有登录了的用户才能看到的页面

Vue路由vue-router怎么应用

2. 其他导航守卫

Vue还提供了很多的其他守卫函数,目的都是在某一个时刻给予回调,可以更好的控制程序的流程或者功能

[导航守卫](导航守卫 | Vue Router (vuejs.org))

流程:

感谢各位的阅读,以上就是“Vue路由vue-router怎么应用”的内容了,经过本文的学习后,相信大家对Vue路由vue-router怎么应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 深入Vue-Router路由嵌套理解
  2. 使用vue-router怎么实现前端路由

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue vue-router

上一篇:VSCode开发vue项目必装的插件是什么

下一篇:win11图标大小如何调节

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》