vue3 vue-router的安装及配置 (一)

文章目录

  • 一、安装
  • 二、Vue Router配置
    • 2.1 vue-router两种引入方式的区别
    • 2.2 不同的历史模式
  • 三、router-link
  • 四、router-view

Vue Router作用:在应用程序中实现优雅的导航和路由管理。

一、安装

注意:vue3安装的是vue-router@4,vue2安装的是vue-router@3,这里我们讲解的是vue3,所以应当安装其4版本。

npm install vue-router@4

二、Vue Router配置

在下面的代码中,我们首先创建router文件引入createRouter 和 createWebHistory 函数。然后定义了路由规则并创建了一个router实例。最后我们在main.ts文件中使用app.use(router)将router实例挂载到Vue应用程序中。

//router/index.ts
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";const routes: Array<RouteRecordRaw> = [{ path: "/", component: () => import("@/views/home/index.vue") },{ path: "/about", component: () => import("@/views/about/index.vue") },
];export const router = createRouter({history: createWebHistory(),routes,
});//main.ts
import { createApp } from 'vue'
import { router } from "@/router/index";
const app = createApp(App)
app.use(router)
app.mount('#app')

2.1 vue-router两种引入方式的区别

  • 1、直接组件引入
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import home from "@/views/home/index.vue";
import about from "@/views/about/index.vue";const routes: Array<RouteRecordRaw> = [{ path: "/", component: home },{ path: "/about", component: about },
];export const router = createRouter({history: createWebHistory(),routes,
});

直接把组件引入进来,不关路径访问或不访问,都把组件引用进来。一次性加载这么多内容,加载会很慢。而且打包时这种方式会这直接将引入的组件一起打进一个js文件中,造成性能问题。

  • 2、异步加载/懒加载
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";const routes: Array<RouteRecordRaw> = [{ path: "/", component: () => import("@/views/home/index.vue") },{ path: "/about", component: () => import("@/views/about/index.vue") },
];export const router = createRouter({history: createWebHistory(),routes,
});

访问了才加载,没有访问就不加载,项目中推荐使用此方式

2.2 不同的历史模式

  • Hash 模式
    • 后面有个#
    • 不会触发重载页面:随意打上 # + 任意字符并回车,浏览器会认为你想要跳转到当前页面某个位置
    • SEO差:google spider(谷歌的爬虫)会忽视掉 # 后面的内容

hash模式 原理是通过监听 hashchange 事件来实现路由的切换

window.addEventListener('hashchange', function(event){ // console.log(event)
})
  • history模式
    • 更友好的URL
    • 无刷新页面切换
    • 更好的SEO
    • 需要服务器配置要求
window.addEventListener('popstate', function(event) {console.log(event);
});

三、router-link

该标签是一个vue-router中已经内置的组件,它会被渲染成一个<a>标签,但比<a>标签更好的是可以在不重新加载页面的情况下更改 URL

<!--使用 router-link 组件进行导航 -->
<!--通过传递 `to` 来指定链接 -->
<!--`<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签-->
<router-link to="/home">Go to Home</router-link>
<router-link to="/about">Go to About</router-link>

在这里插入图片描述

上面to属性除了字符串的写法还可以写成对象的形式:

<router-link :to="{ path: '/home' }">home</router-link>
<router-link :to="{ name: 'about' }">about</router-link>

四、router-view

router-view 将显示与 url 对应的组件。你可以把它放在任何地方,以适应你的布局

<template><router-link :to="{ path: '/home' }">home</router-link><router-link :to="{ name: 'about' }">about</router-link><router-view></router-view>
</template>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@PostConstruct使用详解

一、简介 在Spring应用程序中启动时&#xff0c;有时需要在所有Bean都已加载&#xff0c;初始化并准备好之后执行某些自定义代码。这时&#xff0c;Spring提供了一个可用的方式&#xff0c;即使用PostConstruct注解。这个注解用于标记一个方法&#xff0c;这个方法将在Bean初始…

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例 声明式 UI ArkTS以声明方式组合和扩展组件来描述应用程序的UI&#xff0c;同时还提供了基本的属性、事件和子组件配置方法&#xff0c;帮助开发者实现应用交互逻辑。 如果组件的接口定义没有包…

Dockerfile脚本编写流程及示例

学习dockerfile指令 Dockerfile 指令 说明 FROM 指定基础镜像 MAINTAINER 声明镜像的维护者 LABEL 添加元数据标签 RUN 在容器中执行命令 CMD 容器启动后默认执行的命令 EXPOSE 暴露容器的端口 ENV 设置环境变量 ADD 将文件、目录或远程文件添加到容器中 COP…

第五天 用Python批量处理Excel文件,实现自动化办公

用Python批量处理Excel文件&#xff0c;实现自动化办公 一、具体需求 有以下N个表&#xff0c;每个表的结构一样&#xff0c;如下&#xff1a; 需要把所有表数据汇总&#xff0c;把每个人的得分、积分分别加起来&#xff0c;然后按总积分排名&#xff0c;总积分一致时&#xff…

微信小程序nodejs+vue+uniapp视力保养眼镜店连锁预约系统

作为一个视力保养连锁预约的网络系统&#xff0c;数据流量是非常大的&#xff0c;所以系统的设计必须满足使用方便&#xff0c;操作灵活的要求。所以在设计视力保养连锁预约系统应达到以下目标&#xff1a; &#xff08;1&#xff09;界面要美观友好&#xff0c;检索要快捷简易…

java设计模式 开闭原则

开闭原则&#xff08;Open-Closed Principle&#xff0c;OCP&#xff09;是面向对象设计中的一个重要原则&#xff0c;它指导着我们如何设计和组织代码&#xff0c;以便使系统在扩展性和可维护性方面更加优秀。 开闭原则的定义是&#xff1a;软件实体&#xff08;类、模块、函数…

嘉里大荣物流与极智嘉再度携手,合作助力物流服务高效升级

近日&#xff0c;全球仓储机器人引领者极智嘉(Geek)与3PL知名企业嘉里大荣物流联合宣布&#xff0c;双方再度携手&#xff0c;6周内共建全新自动化订单履行中心&#xff0c;赋能国际时尚运动品牌New Balance加速B2B和B2C订单交付&#xff0c;为其客户提供更高效便捷的物流服务。…

Java参数验证@Validated

就以登录接口为例&#xff0c;如果用户传参的时候没有传递帐号或者密码&#xff0c;会报错&#xff0c;但是报错的信息不够全面&#xff0c;前端人员不好判断是什么问题&#xff0c;这个时候就需要对参数进行一个校验 引入依赖 <dependency><groupId>org.hibernat…

cleer耳机怎么样?cleer和索尼哪个好?热门开放式耳机推荐!

不讲废话&#xff0c;如果你在南卡、Cleer和索尼之间犹豫不决&#xff0c;不知道该选哪个开放式耳机&#xff0c;直接进&#xff0c;跟你保证看完这篇绝对能够帮助你做出最佳决策。 玩开放式耳机也接近5年了&#xff0c;用过的耳机不下十几款&#xff0c;这次花了几千块入手了…

爬虫学习(一)

文章目录 文件目录结构打开文件操作 爬取网页的理解尝试 文件目录结构 打开文件操作 爬取网页的理解尝试 这个放回值为请求正常

接口压测指南

接口压测指南 一、 为什么需要进行接口压测二 、接口压测的目标是什么三、 用什么工具进行接口压测四、 接口压测核心指标4.1 JMeter的报告模板4.2 ApiPost报告模板 五、 接口慢如何排查5.1 大体排查思路5.2 排查工具5.3 压测经验 一、 为什么需要进行接口压测 突然有一天领导…

用友NC FileUploadServlet 反序列化RCE漏洞复现

0x01 产品简介 用友 NC 是用友网络科技股份有限公司开发的一款大型企业数字化平台。 0x02 漏洞概述 用友 NC nc.file.pub.imple.FileUploadServlet 反序列化漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x03 复现环…

python爬虫进阶篇(异步)

学习完前面的基础知识后&#xff0c;我们会发现这些爬虫的效率实在是太低了。那么我们需要学习一些新的爬虫方式来进行信息的获取。 异步 使用python3.7后的版本中的异步进行爬取&#xff0c;多线程虽然快&#xff0c;但是异步才是爬虫真爱。 基本概念讲解 1.什么是异步&…

辛普森距离(SD,Sampson Distance)

定义 Sampson误差是复杂性介于代数误差和几何误差之间&#xff0c;但非常近似于几何误差的一种误差。 应用 SLAM对极几何中使用到SD来筛选内点&#xff1a; 1.随机采样8对匹配点 2.8点法求解基础矩阵 ​&#xff1b; 3.奇异值约束获取基础矩阵F&#xff1b; 4.计算误差&…

5.【自动驾驶与机器人中的SLAM技术】2D点云的scan matching算法 和 检测退化场景的思路

目录 1. 基于优化的点到点/线的配准2. 对似然场图像进行插值&#xff0c;提高匹配精度3. 对二维激光点云中会对SLAM功能产生退化场景的检测4. 在诸如扫地机器人等这样基于2D激光雷达导航的机器人&#xff0c;如何处理悬空/低矮物体5. 也欢迎大家来我的读书号--过千帆&#xff0…

Python Opencv实践 - Yolov3目标检测

本文使用CPU来做运算&#xff0c;未使用GPU。练习项目&#xff0c;参考了网上部分资料。 如果要用TensorFlow做检测&#xff0c;可以参考这里 使用GPU运行基于pytorch的yolov3代码的准备工作_little han的博客-CSDN博客文章浏览阅读943次。记录一下自己刚拿到带独显的电脑&a…

JVM简单了解内存溢出

JVM oracle官网文档&#xff1a;https://docs.oracle.com/en/java/javase/index.html 什么是JVM JVM(Java Virtual Machine)原名Java虚拟机&#xff0c;是一个可以执行Java字节码的虚拟计算机。它的作用是在不同平台上实现Java程序的跨平台运行&#xff0c;即使在不同的硬件…

Linux Makefile的认识及CMake的使用

1 Makefile的作用 Makefile 指的是一个叫 Makefile 的文件,里面提前写了一些指令。每次要自动化的完成一个比较复杂项目的自动编译用的时候,就在命令行输入“make”命令Makefile使用。使用Makefile可以 “智能” 的知道: 1 哪些文件需要先进行编译。 2 当某一文件在某次mak…

Linux进程间通信——共享内存

Linux进程间通信——共享内存 1、创建/打开共享内存1.1 shmget1.2 ftok 2、关联和接触关联2.1 shmat2.2 shmdt 3、删除共享内存3.1 shmctl 3.2 相关shell命令3.3 共享内存状态4、进程间通信5、shm和mmap的区别 原文链接 共享内存不同于内存映射区&#xff0c;它不属于任何进程…

Android,JNI开发和NDK之间的联系

Android&#xff0c;JNI开发和NDK。 1.jni和ndk jni是在jdk中就有出现的 在我们jdk路径中 D:\java\jdk11\include 这就是jdk中的jni Android开发环境中的ndk也有jni&#xff0c; D:\Android\sdk\ndk\20.0.5594570\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\in…