vue3路由配置与路由跳转

news2024/11/19 3:28:51

Vue Router 是Vue.js的官方路由器。它与 Vue.js 核心深度集成,使使用 Vue.js
构建单页应用程序变得轻而易举。特点包括:

  • 嵌套路由映射 动态路由 模块化、
  • 基于组件的路由器配置 路由参数、查询、通配符 查看由 Vue.js 的过渡系统提供支持的过渡效果
  • 细粒度的导航控制
  • CSS 类的链接
  • HTML5 历史模式或哈希模式
  • 可定制的滚动行为
    -URL 的正确编码

使用 Vue + Vue Router 创建单页应用程序很使用 Vue.js,我们已经在使用组件组合应用程序。在将 Vue Router 添加到组合中的时候,我们需要做的就是将我们的组件映射到路由感觉:并让 Vue Router 知道它们在哪里渲染。

请注意,我们如何使用自定义组件来创建链接,而不是经常使用的a标签。router-link这允许 Vue Router 在不重新加载页面的情况下更改 URL

1.安装

npm
npm install vue-router@4

yarn
yarn add vue-router@4

2.src路径下创建文件

在这里插入图片描述

3.在路由文件引入相关路由方法

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

4.创建路由映射数组

const routes = [
{
path: '/',
redirect: '/Home'
}, 
{
path: "/",
name: "Home",
component: Home,
}
];

拥有子路由情况

{
        path: "/",
        name: "Home",
        component: Home,
        children: [
            {
                path: "/dashboard",
                name: "dashboard",
                meta: {
                    title: '系统首页'
                },
                component: () => import ( /* webpackChunkName: "dashboard" */ "../views/admin/Dashboard.vue")
            }, {
                path: "/table",
                name: "basetable",
                meta: {
                    title: '表格'
                },
                component: () => import ( /* webpackChunkName: "table" */ "../views/admin/BaseTable.vue")
            }, {
                path: "/admin-list",
                name: "admin-list",
                meta: {
                    title: '管理员列表'
                },
                component: () => import ( /* webpackChunkName: "table" */ "../views/admin/competence/adminList.vue")
            },{
                path: "/node-list",
                name: "node-list",
                meta: {
                    title: '节点列表'
                },
                component: () => import ( /* webpackChunkName: "table" */ "../views/admin/competence/nodeList.vue")
            }
        ]
    }

5.配置路由对象并导出

const router = createRouter({
    history: createWebHashHistory(),
    routes
});

export default router;

6.配置完成之后在main.js文件中引入

import router from './router'

const app = createApp(App)
app.use(router).mount('#app')

声明式导航

index.vue

<template>
    <router-link to="/home">首页</router-link>
    <!--  显示-->
    <router-view />
</template>

编程式导航

除了使用为声明式导航创建标记方式外,我们还可以使用路由器的实例方法以编程完成此操作。
编程式导航新的vue-router里面尤大加入了一些方法,具体使用如下:

引入路由函数

import { useRouter } from "vue-router";

使用

setup() {
    //初始化路由
    const router = useRouter();
    router.push({
        path: "/"
    });
    
    return {};
}

前置守卫 顾名思义,Vue路由器提供的每个卫士主要用于通过审核或取消来保护导航。有多种连接到导航过程的方法:多种方式、路线或组件内。

router.beforeEach((to, from) => {
    // ...
    // explicitly return false to cancel the navigation
    return false
})
to:导航到的标准化格式的目标路线位置。
from:以标准化格式导航的当前路线位置。

任选的第三个参数next
在之前版本的 Vue Router 中,也可以使用第三个参数 next,但这是一个常见的错误来源,并通过RFC将其删除。它仍然受支持,这意味着您可以将第三个参数传递给任何导航守卫。在这种情况下,您必须next如果用户无法在给定通道中调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯Web】第十四届蓝桥杯Web模拟赛 3 期 | 精品题解(下)

&#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f5a5;️ 蓝桥杯专栏&#xff1a;蓝桥杯题解/感悟 &#x1f5a5;️ TS知识总结&#xff1a;十万字TS知识点总结 &#x1f449; 你的一键三连是我更新的最大动力❤️&#xff01; &…

HTML插入图片

图片介绍一、src属性二、其余属性三、alt用法四、title用法五、属性特点六、src路径的讲解一、src属性 符号&#xff1a;img 特点&#xff1a;单标签 代码&#xff1a; <!doctype html> <html><head><meta charset"utf-8"><title>HT…

尚品汇后台管理项目(Vue)

简介 1:什么是后台管理系统项目? 注意&#xff1a;前端领域当中&#xff0c;开发后台管理系统项目&#xff0c;并非是java、php等后台语言项目。 在前面课程当中&#xff0c;我们已经开发了一个项目【尚品汇电商平台项目】&#xff0c;这个项目主要针对的是用户&#xff08;游…

vue表单验证rules以及validator验证器的使用

为防止用户犯错&#xff0c;尽可能更早地发现并纠正错误。 Element中Form &#xff08;表单&#xff09;组件提供了表单验证的功能&#xff0c;只需要通过 rules 属性传入约定的验证规则&#xff0c;并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 注意&#xff1a;…

案例说明:vue中Element UI下拉列表el-option中的key、value、label含义各是什么

可以简单理解为&#xff1a;label 是给用户展示的东西&#xff0c;value是前端往后端传递的真实值 <template><div><el-page-header back"goBack" content"注册"></el-page-header><el-divider></el-divider><el-…

flex布局优化(两端对齐,从左至右)

文章目录前言方式一 nth-child方式二 gap属性方式三 设置margin左右两边为负值总结前言 flex布局是前端常用的布局方式之一&#xff0c;但在使用过程中&#xff0c;我们总是感觉不太方便&#xff0c;因为日常开发中&#xff0c;大多数时候&#xff0c;我们想要的效果是这样的 …

2023年网络安全比赛--CMS网站渗透中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 2.使用渗透机对服务器信息收集,将网站的名称作为flag提交; 3.使用渗透机对服务器渗透,将可渗透页面的名称作为flag提交; 4.使用渗透机对服务器渗透,…

全网最新的vue.js下载和安装的3种方法(2023年)

文章目录1. 文章引言2. 环境搭建3. 安装vue.js3.1 方法一&#xff1a;官网下载vue.js源代码3.2 方法二&#xff1a;使用npm install创建3.3 方法三&#xff1a;使用bower下载4. 总结1. 文章引言 我主要从事java后端开发&#xff0c;但对前端也非常感兴趣&#xff0c;立志成为全…

【vite·5】vite中环境变量的使用与配置(全网最全)

什么是环境变量 根据当前的代码环境变化的变量就叫做环境变量。比如&#xff0c;在生产环境和开发环境将BASE_URL设置成不同的值&#xff0c;用来请求不同的环境的接口。 环境变量一般可以在全局访问到。在webapck中&#xff0c;我们也许看到过这样的代码 // webpack.config.…

JavaWeb:实现购物商城(课程设计完整版)

前言 做一个javaweb可以对前后端基础知识进行巩固。 就比如 前端可以用 htmlcssjsjQuery&#xff1b; 后端Http协议&#xff0c;Servlet基础&#xff0c;JSP技术&#xff0c;Mysql等 该程序做的这个就相对比较基础&#xff0c;适合大学生当课程设计用 在文章结尾附项目源代码和…

Vue生命周期钩子剖析(共12个钩子)

生命周期示意图&#xff1a; 生命周期及其钩子函数理解 生命周期&#xff1a; Vue是一个构造函数&#xff0c;当执行执行这个函数时&#xff0c;相当于初始化vue实例&#xff1b;在创建实例过程中&#xff0c;需要设置数据监听&#xff0c;编译模板&#xff0c;将实例挂载到DO…

Vue warn]: Component is missing template or render function.

警告&#xff1a;Component is missing template or render function. 问题声明&#xff1a; 组件缺少模板或渲染功能。 解决问题 方式一&#xff1a; 在写vue项目时&#xff0c;网页没有加载出来东西一片空白&#xff0c;然后控制台出现黄色的警告&#xff1a; 原因是&…

html--盒子的边框属性(border)

content:内容框&#xff08;我们设置的宽高是内容框的宽高&#xff09; padding:内边距 top right bottom left&#xff08;四边--一般默认指定的方向&#xff09; border:边框线包裹了内边距&#xff08;四边&#xff09; margin:外边距 在边框的外面 元素和其他元素的间…

【手把手带你学JavaSE】String类(下篇)

目录前言一、字符串查找二、字符串转换2.1 数值和字符串转化2.2 大小写转化2.3 字符串和数组的转换2.4 格式化三、字符串替换四、字符串拆分4.1 拆分处理4.2 部分拆分4.3 拆分IP地址五、字符串截取六、其他的方法6.1 String trim()6.2 boolean isEmpty()6.3 int length()6.4 判…

vue3与vue2的区别(你不知道细节全在这)

先来说说当下市场开发使用的问题&#xff0c;目前2021年使用vue3开发的企业还是少&#xff0c;基本上都还是以vue2的形式进行开发&#xff0c;vue3的开发模式跟react很像&#xff0c;这时候有人就会想那我学vue3有用么&#xff0c;淦&#xff0c;他喵的&#xff0c;先别激动&am…

Vue开发项目入门——Vue脚手架

1.什么是Vue脚手架 Vue脚手架是Vue官方提供的标准化开发工具&#xff08;开发平台&#xff09;&#xff0c;它提供命令行和UI界面&#xff0c;方便创建vue工程、配置第三方依赖、编译vue工程。 特别注意&#xff1a;Vue脚手架是用来方便开发的&#xff0c;但vue脚手架不是最终发…

Canvas百战成神-圆(1)

Canvas百战成神-圆 初始化容器 <canvas id"canvas"></canvas>canvas{border: 1px solid black; }让页面占满屏幕 *{margin: 0;padding: 0; } html,body{width: 100%;height: 100%;overflow: hidden; } ::-webkit-scrollbar{display: none; }初始化画笔…

【网络请求之Axios】axios的基础用法

1. axios概述 axios 是一个专注于网络请求的库。axios 在请求到数据之后&#xff0c;在真正的数据之外&#xff0c;套了一层外壳。 2.axios的基本使用 2.1 发送get请求 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta cha…

前端:弹幕标签用法详细介绍(跑马灯)

弹幕标签 1&#xff0c;注意弹幕标签marquee&#xff0c;现在一些浏览器是不支持的 2&#xff0c;弹幕标签也叫跑马灯 marquee格式及其含有的属性 1.基本格式 如下&#xff1a; <marquee></marquee>2.一些属性 1&#xff0c;direction属性&#xff1a;表示的…

39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程

《JavaScript再出发》系列文章阅读《仙宗》发布招仙贴&#xff0c;广招天下道友 文章目录JavaScript中Promise的基本概念、使用方法&#xff0c;以及回调地狱规避一、前言二、Promise基本概念2.1 异步工作的封装2.2 Promise执行结果获取thencatchfinally三、使用Promise解决回调…