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.mfbz.cn/a/218056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#网络编程TCP程序设计(Socket类、TcpClient类和 TcpListener类)

目录 一、Socket类 1.Socket类的常用属性及说明 2.Socket类的常用方法及说明 二、TcpClient类 三、TcpListener类 四、示例 1.源码 2.生成效果 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在C#中&#xff0c;TCP程序设…

.Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)

机缘 不知不觉,.NET8都已经面世,而我们一直还停留在.netframework4.5开发阶段,最近准备抽空研究一下.Net6,一是为了提高技术积累,一方面想着通过这次的学习,看有没有可能将老的FX版本替换到.Net6开发上,经过查找官方资料,对.Net6支持的系统版本做一个分享,方便大家后期…

css设置渐变色

css如何设置自定义渐变色&#xff1f;线性渐变篇 CSS渐变可以让你在两个或多个指定颜色之间显示平滑的过渡。 CSS定义了三种渐变类型: Linear Gradients (goes down/up/left/right/diagonally) 下降/ 上升/左/右/对角线Radial Gradients (defined by their center) 由中心定…

RocketMQ - SpringBoot整合RocketMQ

SpringBoot整合RocketMQ 1、快速实战 ​ 按照SpringBoot三板斧&#xff0c;快速创建RocketMQ的客户端。创建Maven工程&#xff0c;引入关键依赖&#xff1a; <dependencies><dependency><groupId>org.apache.rocketmq</groupId><artifactId>r…

算符优先语法分析程序设计与实现

制作一个简单的C语言词法分析程序_用c语言编写词法分析程序-CSDN博客文章浏览阅读378次。C语言的程序中&#xff0c;有很单词多符号和保留字。一些单词符号还有对应的左线性文法。所以我们需要先做出一个单词字符表&#xff0c;给出对应的识别码&#xff0c;然后跟据对应的表格…

C++-详解智能指针

目录 ​编辑 一.什么是智能指针 1.RAII 2.智能智能指针 二.为什么需要智能指针 1.内存泄漏 a. 什么是内存泄漏&#xff0c;内存泄漏的危害 b.内存泄漏分类 c.如何检测内存泄漏 d.如何避免内存泄漏 总结一下: 2.为什么需要智能指针以及智能指针的原理 三.智能指针的使用 1.C…

Docker使用笔记

1.使用docker创建pytorch深度环境 1.1 创建docker环境 docker run -it --nameDCASE --gpus all --shm-size 64G pytorch/pytorch /bin/bash #这里可以根据需要将 pytorch/pytorch 镜像更改为自己需要的镜像&#xff0c;如果不知道自己主机含有哪几个镜像&#xff0c;可以使用…

Linux lshw命令(lshw指令)(List Hardware,获取底层硬件信息)(查询硬件信息)

文章目录 Linux lshw命令&#xff1a;一个全面的硬件信息查询工具介绍安装lshw使用lshwlshw的选项和参数lshw文档英文文档中文文档 命令示例lshw -c network -sanitize查看系统网络硬件信息&#xff0c;并移除敏感项&#xff08;显示为REMOVED&#xff09; lshw与其他命令的对比…

手搭手浅学状态管理VueX

https://vuex.vuejs.org/zh/guide/ 每一个 Vuex 应用的核心就是 store&#xff08;仓库&#xff09;。“store”基本上就是一个容器&#xff0c;它包含着你的应用中大部分的状态 (state)。Vuex 和单纯的全局对象有以下两点不同&#xff1a; Vuex 的状态存储是响应式的。当 Vu…

25、矩阵乘法的本质

本来一直在介绍卷积,为什么突然出现一个矩阵乘法呢? 因为如果我们将卷积运算拆开,其中最核心的部分便是一个矩阵乘法。所以,卷积算法可以看做是带滑窗的矩阵乘法。 这里的滑窗,就是卷积运算中所示意的动图那样,所以,我们把滑窗固定,不看卷积核滑动这个动作,那么就是…

二维码智慧门牌管理系统升级:地址审核管理方案

文章目录 前言一、智能化门牌管理系统二、地址审核管理方案 前言 在当今信息化社会&#xff0c;标准地址管理是确保数据准确性和运营顺畅的重要一环。为了更好地管理地址信息&#xff0c;二维码智慧门牌管理系统升级了一项新的地址审核管理方案&#xff0c;旨在提高地址管理的…

人工智能学习6(贝叶斯实现简单的评论情感分析)

编译工具PyCharm 文章目录 编译工具PyCharm 文本分析与表示实现方式&#xff1a;文本表示方法文本相似度计算LDA主题模型 朴素贝叶斯算法应用&#xff1a;评论情感分析&#xff0c;工具评论分析是好评还是差评获取数据加载停用词内容标准化&#xff08;将每一句话划分成一个个的…

ESP32 freeRTOS笔记 参数传递、任务优先级

一、四种参数传递方式 1.1 整数传递 使用 (void *) 任何类型传递参数&#xff0c;通过地址传递给任务。 #include <stdio.h> #include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h"void myTask(void *pvP…

简单了解HTTP报文及示例

简单了解HTTP报文及示例 HTTP报文请求报文响应报文通用首部字段Cache-ControlConnectionDate 请求首部字段AcceptAccept-CharsetAccept-EncodingAccept-LanguageHostIf-MatchIf-Modified-SinceIf-None-MatchRefererUser-Agent 响应首部字段Accpet-RangesAgeLocationServer 实体…

8.HTTP工作原理

HTTP是什么 HTTP工作原理 HTTP协议的请求类型和响应状态码 总结 1.HTTP是什么 HTTP超文本传输协议就是在一个网络中上传下载文件的一套规则 2.HTTP工作原理 HTTP超文本传输协议的本质是TCP通信&#xff0c;链接—>请求—>响应—>断开 3.HTTP协议的请求类型和响应状…

stm32L071KB单片机字节对齐问题

字节对齐问题由来很关键 字节对齐问题由来 字节对齐问题由来 在移植同事代码的时候发现到一个赋值变量的地方就会出现死机&#xff0c;进入hardfault,怎么也找不不到原因&#xff0c;最后没办法去了github https://github.com/armink/CmBacktrace/blob/master/README_ZH.md Cm…

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录 环境准备创建VPC 配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由 验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网 知识点参考资料 在《AWS攻略——…

Hadoop的介绍与安装

1 Hadoop的简介 Hadoop是一个开源的大数据框架&#xff0c;是一个分布式计算的解决方案。Hadoop是由java语言编写的&#xff0c;在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架&#xff0c;其核心部件是HDFS与MapReduce。 HDFS是一个分布式文件系统&#x…

新华三数字大赛复赛知识点 AAA

AAA的概念和架构&#xff0c;RADIUS和TACASS的原理和配置 AAA是网络访问控制的一种安全管理框架&#xff0c;他决定哪些的用户能够访问网络&#xff0c;以及用户能够访问哪些资源或者得到哪些服务。 第一个A&#xff1a;认证 认证用来识别访问网络的用户的身份&#xff0c;判断…

Proteus仿真--基于1602LCD与DS18B20设计的温度报警器

本文介绍基于1602LCD与DS18B20设计的温度报警器设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 其中温度传感器选用DS18B20器件&#xff0c;主要用于获取温度数据并上传&#xff0c;温度显示1602LCD液晶显示器&#xff0c;报警模块选用蜂鸣器&#…