Vue3.0 路由

news2024/11/25 9:39:13

简介

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

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

路由的基本使用

用 Vue + Vue Router 创建单页应用非常简单:通过 Vue.js,我们已经用组件组成了我们的应用。当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们。

Unpkg.com 提供了基于 npm 的 CDN 链接。上述链接将始终指向 npm 上的最新版本。 你也可以通过像 https://unpkg.com/vue-router@4.0.15/dist/vue-router.global.js 这样的 URL 来使用特定的版本或 Tag。

安装 vue router

npm install vue-router@4
#或者
yarn add vue-router@4

使用

在项目中的src文件夹下面创建一个router的文件夹和一个views文件夹

在router文件夹下面创建一个index.js文件

在views文件夹下面创建一个Home.vue组件和一个List.vue组件

index.js文件内容:

import { createRouter,createWebHashHistory } from "vue-router"; //导入vue-router路由模块,createWebHashHistor函数
import Home from "../views/Home.vue" //导入Home组件
import List from "../views/List.vue"

const routes = [
    {
        path: "/",  //路径:        
        //component: List  //path路径所对应的组件

        //表示如果路径是/ 那么就跳转到/list路径,而/list路径对应的是List组件,所以就显示出List组件的内容了
        //举列:当浏览器输入的是:http://localhost:5173/ 则会重定向跳转到 http://localhost:5173/#/list
        redirect:"/list" 

    },
    {
        path: "/home",  //路径
        component: Home //path路径所对应的组件:路径/ 和/home 都可以路由到Home组件

    },
    {
        path: "/list",  //路径
        component: List //path路径所对应的组件
    }
]

//创建路由对象
const router = createRouter({
    history: createWebHashHistory(),//按照hash路由模式来路由导航,这种模式的url地址会存在 /#/
    routes, //routes:routes的缩写

})

export default router //导出router路由对象//导出router路由对象


// createWebHashHistory() 是 Vue Router 提供的一种基于浏览器 URL 的 hash 路由模式,它将路由添加到 URL 中的 hash 中
// 例如:/#/home、/#/about。这种模式可以避免服务器配置的问题,而且支持所有浏览器。
// 但是,由于 URL 中添加了 hash,因此在搜索引擎的 SEO 优化中存在一些问题。


 main.js文件内容

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'

//import router from "../src/router" //导入路由js          注意:如果仅仅是指定了一个文件夹router,程序会自动去router文件夹下寻找index.js,并导入
//import router from "../src/router/index" //导入路由js    注意:.js可以省略
import router from "../src/router/index.js" //导入路由js 
//import router from "../src/router/myindex.js" //导入路由js  注意:如果我们的路由文件不是index.js 那么我们就得指定具体的名称了

var app=createApp(App)

app.use(router) //注册路由组件

app.mount("#app")

App.vue组件

<template>
  <div>
    {{ name }}
    <!-- <RouterView></RouterView> 是 Vue.js 框架中的一个组件,用于渲染与当前路由匹配的组件视图。当用户在应用中导航到不同的页面时,<RouterView> 组件会负责显示与当前路由对应的组件。 -->
    <!-- 举列:如果浏览器中输入:http://localhost:5173/#/list 这个路径对应的组件list就会插入到<RouterView></RouterView>中 -->
    <router-view></router-view> 
  </div>
</template>
<script setup>
import { ref, } from 'vue';

//导入模板即注册:注册的名字就是你导入用的名称Home
import Home from "./views/Home.vue" //导入Home组件:
import List from "./views/List.vue" //导入List组件:

const name = ref("李大锤");

</script>
  

Home.vue组件

<template>
    <div>Home</div>
</template>

List.vue组件

<template>
    <div>List</div>
</template>

路由别名的使用

在单页面应用中,网页具体路径显示是由vue-router配置中 path 决定的,path设置的是什么就显示什么,和name无关。

不同路由路径下页面渲染的内容,是根据component所对应的组件来进行渲染的,和name无关。

其实name就相当于给你的path取个别名,方便使用,路由并不是一定要设置name值。(如果不设置name,vue-router默认name值为 default)

index.js文件内容:

import { createRouter,createWebHashHistory } from "vue-router"; //导入vue-router路由模块,createWebHashHistor函数
import Home from "../views/Home.vue" //导入Home组件
import List from "../views/List.vue"

const routes = [
    {
        path: "/",  //路径:        
        //component: Home  //path路径所对应的组件

        //表示如果路径是/ 那么就跳转到/list路径,而/list路径对应的是List组件,所以就显示出List组件的内容了
        //举列:当浏览器输入的是:http://localhost:5173/ 则会重定向跳转到 http://localhost:5173/#/list
        //redirect:"/list" 

        //redirect:"/list" 这种重定向是使用的路径方式来重定向的。我们也可以通过路由的name来重定向,如下:
        redirect:{
            name:"mylist" //重定向到路由名称为mylist的路由中,这样当浏览器输入的是:http://localhost:5173/ 则会重定向跳转到 http://localhost:5173/#/list
        }

    },
    {
        path: "/home",  //路径
        component: Home //path路径所对应的组件:路径/ 和/home 都可以路由到Home组件

    },
    {
        path: "/list",  //路径
        name:"mylist",  //路由名称,如果不指定name 默认的name为default
        component: List //path路径所对应的组件
    }
]

//创建路由对象
const router = createRouter({
    history: createWebHashHistory(),//按照hash路由模式来路由导航,这种模式的url地址会存在 /#/
    routes, //routes:routes的缩写

})

export default router //导出router路由对象//导出router路由对象

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

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

相关文章

思考的起点(一): 事实与判断

事实与判断是思考的主要组成部分&#xff0c;深入理解事实与判断的基本概念&#xff0c;了解其应用可以提升个体的思考质量; 关于事实真相 事实是认知的基础 1.很多事情没有真相, 或者说真相陷入历史的迷雾中, 无法被发现; 2.世界不需要真相&#xff0c;真相往往都是复杂又残…

算法题:144.二叉树的前序遍历(递归、迭代)Java Python部分

1、递归法 其实递归法提交结果也挺好看的&#xff0c;代码如下&#xff1a; class Solution {//前序遍历public List<Integer> preorderTraversal(TreeNode root) {List<Integer> res new ArrayList<Integer>();preorder(root, res);return res;}public vo…

木马捆绑+签名修改(CobaltStrike免杀)

今天我们就来聊一下什么是捆绑木马,说起捆绑木马我相信一些人肯定觉得很陌生。在日常中我相信大家经常可能会遇到这样的一个问题,在一些网站上下载一个电脑软件结果电脑上就被莫名其妙的安装上了一个全家桶(流氓软件)。这就是通过简单的捆绑技术将一些你不需要的广告软件安…

【漏洞复现】Apache_HTTP_2.4.50_路径穿越漏洞(CVE-2021-42013)

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证方式一 curl方式二 bp抓捕 1.5、修复建议 说明内容漏洞编号CVE-2021-42013漏洞名称…

CUMT-----Java课后第五章编程题

文章目录 一、题11.1 问题描述1.2 代码块1.3 运行截图 二、题22.1 问题描述2.2 代码块2.3 运行截图 一、题1 1.1 问题描述 (1)使用继承编写人类、教师、学生类的实体类。(2)编写测试类&#xff0c;实例化教师和学生类对象并显示。 1.2 代码块 public class Human {private S…

【Spring Security】Spring Security 认证过程源码分析

项目启动 我们在前面有了解到可以在application.yml中配置用户名密码,那么可以猜想:肯定是在项目启动的时候加载的,我们通过鼠标点击 进入SecurityProperties,我们在User中的getName上打断点,这样项目启动的时候就可以走到这里 之后我们通过点击:Drop Frame可以往回走进…

MapReduce WordCount程序实践(IDEA版)

环境 Linux&#xff1a;Hadoop2.x Windows&#xff1a;jdk1.8、Maven3、IDEA2021 步骤 编程分析 编程分析包括&#xff1a; 1.数据过程分析&#xff1a;数据从输入到输出的过程分析。 2.数据类型分析&#xff1a;Map的输入输出类型&#xff0c;Reduce的输入输出类型&#x…

C++指针笔记

一.定义 是什么&#xff1f; 指针就是地址&#xff0c;相当于门牌号。通过 0x0000也可以拿到该地址里的数据&#xff0c; 可是如果每创建一个变量都要去记住地址编号不太方便我们使用数据&#xff0c;所以才有变量。作用&#xff1f; 通过指针(地址)间接访问内存。内存的编号…

YOLO目标检测数据集大全【含voc(xml)、coco(json)和yolo(txt)三种格式标签+划分脚本+训练教程】(持续更新建议收藏)

一、作者介绍&#xff1a;资深图像算法工程师&#xff0c;YOLO算法专业玩家&#xff1b;擅长目标检测、语义分割、OCR等。 二、数据集介绍&#xff1a; 真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;分享的绝大部分数据集已应用于各种实际落地项目。所有数据…

在CARLA中获取CARLA自动生成的全局路径规划

CARLA生成全局路径规划的代码在 carla/PythonAPI/carla/agents/navigation 在自己的carla客户端py文件中 from agents.navigation.basic_agent import BasicAgent # pylint: disableimport-error 如果是pycharm开发&#xff0c;要在pycharm的Settings - Project Structure…

高防CDN:游戏应用抵御DDoS攻击的坚固堡垒

在当今的数字时代&#xff0c;游戏应用已经成为人们生活的一部分&#xff0c;而面临的网络威胁也日益复杂。其中&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击是游戏应用的一项严重威胁&#xff0c;可能导致游戏服务不可用&#xff0c;用户流失&#xff0c;以及…

卷积与反卷积

文章目录 1 卷积1.1 卷积后的输出维度 2 反卷积2.1 来源2.2 原理2.3 使用2.3.1 padding2.3.2 strideoutput_padding 2.3 意义 1 卷积 1.1 卷积后的输出维度 设输入维度为i x i&#xff0c;卷积核大小为k x k&#xff0c;padding为p&#xff0c;strides为s&#xff0c;则输出维…

NSSCTF第10页(3)

[LitCTF 2023]彩蛋 第一题&#xff1a; LitCTF{First_t0_The_k3y! (1/?) 第三题&#xff1a; <?php // 第三个彩蛋&#xff01;(看过头号玩家么&#xff1f;) // R3ady_Pl4yer_000ne (3/?) ?> 第六题&#xff1a; wow 你找到了第二个彩蛋哦~ _S0_ne3t? (2/?) 第七题…

中文sd:SkyPaint-AI-Diffusion

https://huggingface.co/SkyworkAIGC/SkyPainthttps://huggingface.co/SkyworkAIGC/SkyPainthttps://github.com/SkyWorkAIGC/SkyPaint-AI-Diffusionhttps://github.com/SkyWorkAIGC/SkyPaint-AI-Diffusion从model_index.json看&#xff0c;应该算是标准的sd1.5架构了。 {&quo…

LangChain+LLM实战---向量数据库介绍

原文&#xff1a;Vector Databases Embeddings是由人工智能模型(如大型语言模型)生成的&#xff0c;具有大量的属性或特征&#xff0c;使其表示难以管理。在人工智能和机器学习的背景下&#xff0c;这些特征代表了数据的不同维度&#xff0c;这些维度对于理解模式、关系和底层…

win10 + cmake3.17 编译 giflib5.2.1

所有源文件已经打包上传csdn&#xff0c;大家可自行下载。 1. 下载giflib5.2.1&#xff0c;解压。 下载地址&#xff1a;GIFLIB - Browse Files at SourceForge.net 2. 下载CMakeLists.txt 及其他依赖的文件 从github上的osg-3rdparty-cmake项目&#xff1a; https://github.…

加密解密基础知识Crypto Basics

base64编码 编码不是真正的密码学&#xff0c;但它在围绕加密功能的各种标准中被大量使用。尤其是 Base64 编码。 Base64 编码是一种用于将各种字节转换为特定字节范围的技术。此特定范围是 ASCII 可读字节。 这样&#xff0c;您可以更轻松地传输二进制数据&#xff0c;例如密…

QML 仪表盘小示例

本次项目已发布在CSDN->GitCode,下载方便,安全,可在我主页进行下载即可,后面的项目和素材都会发布这个平台。 个人主页:https://gitcode.com/user/m0_45463480怎么下载:在项目中点击克隆,windows:zip linux:tar.gz tar # .pro TEMPLATE = appTARGET = dialcontrol​#…

【Unity】2D角色跳跃控制器

最近加了学校的Nova独游社&#xff0c;本文是社团出的二面题&#xff0c;后续有时间优化下可能会做成一个二维冒险小游戏。本文主要涉及相关代码&#xff0c;参考教程&#xff1a;《勇士传说》横版动作类游戏开发教程 效果演示 【Unity】2D角色跳跃模拟器 主要实现功能&#xf…

【从0到1设计一个网关】重试与限流的实现

文章目录 重试限流上文已经讲到了如何设计一个高可用的稳定的网关,那么这里就实现其中两种比较常用的方法。 重试 这里的重试,我将会在IO异常以及请求超时的时候进行一个请求重试。 首先,我们在路由过滤器中添加一个重试的函数,用于在请求出现如上两个异常的时候进行重试。…