vue Router路由

news2024/11/25 15:36:23

编程式导航 | Vue Router

看官方文档

vue Router

是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

1.安装路由组件

建立项目时  npm init vue app   cnpm install vue-router@4 --save

2.编写路由脚本

在项目的src/router/index.js 或者 index.ts

import {createRouter, createWebHashHistory} from 'vue-router'
import Home from '../views/Home.vue'
const routes = [
{
path: '/about',
component: () => import('../views/About.vue')
}, {
path: '/home',
component: Home,
}, {
path: '/',
redirect: '/home'
}, {
path: '/login',
component: () => import('../views/Login.vue')
}, {
path: '/user',
component: () => import('../views/User.vue'),
redirect: '/user/manager',
children: [
{path: 'add', component: () => import('../views/UserAdd.vue')},
{path: 'show', component: () => import('../views/UserShow.vue')},
{path: 'manager', component: () => import('../views/UserManager.vue')},
]
}
]
const router = createRouter({
history: createWebHashHistory(),
routes,
})
export default router

App.vue

<template>
<h3>项目首页</h3>
<hr>
<router-link to="/home">首页</router-link> &nbsp;
<router-link to="/login">登录</router-link> &nbsp;
<router-link to="/user">用户管理</router-link>&nbsp;
<router-link to="/about">关于我们</router-link>
<hr>
<router-view/>
</template>

User.vue

<template>
<h3>用户管理</h3>
<hr>
<router-link to="/user/add">添加用户</router-link>&nbsp;
<router-link to="/user/show">查看用户</router-link>&nbsp;
<router-link to="/user/manager">管理用户</router-link>&nbsp;
<hr>
<router-view/>
</template>

3.入口main.js导入使用

在src/main.js入口文件中

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import './assets/main.css'
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.mount('#app')

route 重定向redirect

404

嵌套路由,子路由

在Goods.vue组件中,声明router-link 和 子路由视口rounter-view

<template>
<h1>商品中心,商品列表</h1>
<br>
<br>
<router-link to="/goods/show">商品查看</router-link>&nbsp;
<router-link to="/goods/add">添加商品</router-link>&nbsp;
<router-link to="/goods/manager">商品管理</router-link>
<hr>
<router-view/>
</template>
Wechat:webrxwp - Mobile:13014577033 - Email:webrx@126.com - QQ:7031633 

a

{
path: '/goods',
component: () => import('../views/Goods.vue'),
//默认进入子路由manager
redirect: '/goods/manager',
children: [
{path: 'show', component: () => import('../views/GoodsShow.vue')},
{path: 'add', component: () => import('../views/GoodsAdd.vue')},
{path: 'manager', component: () => import('../views/GoodsManager.vue')},
]
}

编程式导航

原来的路由导航方式为声明式导航,编程式导航,是通过路由组件对象的api编程方式,直接路由访问。 router.push(url) router.go(-1) router.back()

<template>
<h1>首页</h1>
<button @click="goa(10)">about/10</button>
<button @click="goback(-3)">go-back</button>
</template>
<script lang="ts" setup>
import {useRouter} from 'vue-router'
const router = useRouter()
const goa = id => {
router.push(`/about/${id}`)
}
const goback = n =>{
router.go(n)
}
</script>
<style scoped>
</style>


// 字符串路径
router.push('/users/eduardo')
// 带有路径的对象
router.push({ path: '/users/eduardo' })
// 命名的路由,并加上参数,让路由建立 url
router.push({ name: 'user', params: { username: 'eduardo' } })
// 带查询参数,结果是 /register?plan=private
router.push({ path: '/register', query: { plan: 'private' } })
// 带 hash,结果是 /about#team
router.push({ path: '/about', hash: '#team' })

命名路由

定义路由 name:'about 命名

, {
path: '/about/:id(\\d+)',
name: 'about',
component: () => import('../views/About.vue'),
props: true
}

使用声明式导航

<router-link :to="{name:'about',params:{id:10}}">about/10</router-link>

编程式导航

// 命名的路由,并加上参数,让路由建立 url
router.push({ name: 'about', params:{ id: 10 }})

路由守卫

全局导航守卫会拦截每个路由规则,从而对每个路由访问权限的控制

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

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

相关文章

Golang Linux 安装与环境变量配置

下载 Go 二进制包 wget https://dl.google.com/go/go1.21.1.linux-amd64.tar.gz 解压文件并将其移至 /usr/local 目录 sudo tar -C /usr/local -xzf go1.20.1.linux-amd64.tar.gz -C 选项解压文件到 /usr/local 目录&#xff0c;查看 /usr/local/go 目录的内容 将 Go 二进…

【openwrt学习笔记】miniupnpd学习笔记

目录 一、参考资料二、upnp基本概念三、miniupnpd3.1参数说明3.1.1 config upnp 的配置参数表3.1.2 config perm_rule 许可设置配置参数表 3.2 windows上使用miniupnpc工具3.3 关于开启upnp功能后无法添加端口 四、其它知识补充4.1 NAT4.1.1 NAT概念4.1.2 NAT的分类 4.2 NAT穿透…

华为云云耀云服务器L实例评测|伪分布式环境下部署hadoop2.10.1

文章目录 前言云耀云服务器L实例简介Hadoop简介 一、配置环境购买云耀云服务器L实例查看云耀云服务器L实例状态重置密码查看弹性公网IP地址 FinalShell连接服务器二、搭建Hadoop单机版本详细安装步骤如下&#xff1a;我们先开始配置java环境hadoop2.x接下来需要利用vim来操作co…

Java常用类之 Java比较器、System类、Math类、BigInteger与BigDecimal

Java常用类 文章目录 五、Java比较器5.1、Comparable 接口的使用5.1.1、自然排序&#xff1a;Comparable接口5.1.2、定制排序&#xff1a;Comparator接口 六、System类七、Math类八、BigInteger与BigDecimal 五、Java比较器 提出背景&#xff1a; Java中的对象&#xff0c;正常…

泰尔指数案例分析

泰尔指数是一种衡量‘不平均’的指数&#xff0c;比如用于衡量‘贫富差异’&#xff0c;也或者衡量大气污染的水平是否一致&#xff0c;二氧化碳排放水平差异情况等。泰尔指数的数学原理是‘熵’&#xff0c;‘熵’是一种衡量数据‘有序性’的指标&#xff0c;当‘熵’值越大时…

GEE:快速实现NDVI时间序列NDVI线性趋势和变化敏感性计算(斜率、截距)

作者:CSDN @ _养乐多_ 本博客将向您介绍如何使用Google Earth Engine(GEE)平台来处理Landsat 5、7和8的卫星图像数据,计算NDVI的斜率和截距,以及如何导出这些结果供进一步分析使用。 文章目录 一、代码详解1.1 核心代码详解1.2 核心代码详解1.3 代码框架介绍二、完整代码…

buuctf web [极客大挑战 2019]Http

进入题目上下翻找了一下&#xff0c;没有什么突破口 检查了一下源码&#xff0c;有一个跳转页面 点击页面&#xff0c;跳转到了新的地方 新页面里没有别的跳转接口 但是页面中有提示&#xff1a;It doesnt come from https://Sycsecret.buuoj.cn 打开burp 页面提示要求来自h…

群体遗传学必备知识锦囊

群体遗传学应知应会 今天分享一篇关于群体遗传学的笔记&#xff0c;主要参考了网络公开资料以及公开发表的文献&#xff0c;包含群体遗传的概述、研究方法、应用领域、分析流程、统计学原理、群体结构评估等。 群体和个体有什么区别&#xff1f; 在遗传学中&#xff0c;群体和个…

innovus: 各种padding一勺烩

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 instance padding specifyInstPad $instance_name -left/-right $site_num site_num指的是padding的大小以site宽度为单位。 module padding setPlaceMode -place_global_mo…

人工智能训练师

人工智能训练师是一个较新的职业&#xff0c;2020年2月才被正式纳入国家职业分类目录。他们主要负责在人工智能产品使用过程中进行数据库管理、算法参数设置、人机交互设计、性能测试跟踪及其他辅助作业。 这个职业的背景源于AI公司从客户&#xff08;用户&#xff09;那里获取…

mac office2019

目录 简介 macoffice2019 安装步骤 总结 简介 macoffice2019 Mac Office 2019是微软为苹果Mac系统用户推出的办公软件套装。它包括了Word、Excel、PowerPoint等常用应用程序&#xff0c;并且提供了一系列全新的功能和工具&#xff0c;以提升用户的办公效率和创造力。 Mac O…

容器核心技术之Namespace与Cgroup

容器是一种流行的虚拟化技术&#xff0c;它允许我们在同一台计算机上与其他进程在独立环境中运行进程。那么容器是如何做到这一点的呢&#xff1f;为此&#xff0c;容器是从 Linux 内核的一些新功能构建的&#xff0c;其中两个主要功能是“namespace”和“cgroup”。 1.Namespa…

IDE VS2012正则替换 并将捕获的内容放入替换的字符串中$1

场景&#xff1a; 我想把ESLOG_INF(("deviceName %s", deviceName));只要一对括号&#xff0c;即ESLOG_INF(“deviceName %s”, deviceName); 获取不想替换的内容 先用正则 ESLOG_INF\(\((.*)\)\);捕获 不想替换的内容 "deviceName %s", deviceName放…

Qt --- Day01

效果图&#xff1a; 头像的圆形未实现 单击登陆&#xff0c;触发信号与槽 enter_widget.h #ifndef ENTER_H #define ENTER_H#include <QDialog> #include<QLabel> #include<QTimer> class enter_widget : public QDialog {Q_OBJECT public:explicit enter_…

【面试题】前端应该了解的个JavaScript技巧有什么?

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 【国庆头像】- 国庆爱国 程序员头像&#xff01;总有一款适合你&#xff01; 简介 如果你用这些技巧优化你的js码&#xff0c;它可以帮助你编写更干净、…

AUTOSAR通信篇 - CAN网络通信(五:ComM)

文章目录 模块交互EcuM交互BswM交互NvM交互CanSM交互NM交互 ComM功能Paritial Network Cluster 管理Partial Network Cluster 管理功能ComM PNC状态机在主状态COMM_PNC_NO_COMMUNICATION中PNC的行为PNC网关相关的要求 从断电进入PNC主状态COMM_PNC_NO_COMMUNICATION时在主状态C…

微软发现影响 Linux 和 macOS系统的 ncurses 库漏洞

微软在 ncurses&#xff08;new curses 的缩写&#xff09;编程库中发现了一组内存损坏漏洞&#xff0c;威胁者可利用这些漏洞在易受攻击的 Linux 和 macOS 系统上运行恶意代码。 微软威胁情报研究人员 Jonathan Bar Or、Emanuele Cozzi 和 Michael Pearse 在今天发布的一份技…

GcExcel:Java 应用创建、修改和保存 Excel 电子表格 -Crack

在 Java 应用程序中创建、修改和保存 Excel 电子表格&#xff1a; GrapeCity Documents for Excel&#xff0c;Java 版 (GcExcel) 是一个高速 Java Excel 电子表格 API 库&#xff0c;不需要依赖于 Microsoft Excel。用户可以通过 Java 应用程序以编程方式创建、编辑、导入和导…

PP-Tracking之C++部署

文章目录 概要环境fastdeploy源码编译PP-Tracking源码编译使用参考概要 PP-Tracking是基于飞桨深度学习框架的业界首个开源实时跟踪系统。针对实际业务的难点痛点,PP-Tracking内置行人车辆跟踪、跨镜头跟踪、多类别跟踪、小目标跟踪及流量计数等能力与产业应用,同时提供可视…

大数据学习1.5-单机Hadoop

1.修改主机信息 vi /etc/hosts 2.修改信息如下(这里第三位一定是自己的IP 每个人都不一样) 192.168.216.140 hadoop01 192.168.216.141 hadoop02 192.168.216.142 hadoop033.修改Hadoop配置信息-1进入配置信息文件 cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop/ 4.修改Had…