首页 > 其他分享 >前端笔记1-vue:路由相关内容

前端笔记1-vue:路由相关内容

时间:2024-11-11 19:14:51浏览次数:3  
标签:About vue import 笔记 router Home 路由

文章目录

文章目录

前言

本篇笔记,主要记录vue项目中路由器的工作模式、命名路由、嵌套路由、路由传参、编程式路由和路由重定向等的相关内容。

一、路由器工作模式

定义:在 Vue Router 中,有两种主要的工作模式:hash 模式和 history 模式。这两种模式决定了 URL 的表现形式以及浏览器如何处理导航。

1、hash模式

特点
1、使用 URL 的哈希部分(即 # 后面的部分)来模拟一个完整的 URL。
2、不需要服务器端的支持,因为哈希部分不会发送到服务器。
3、浏览器地址栏的变化不会导致页面重新加载。
使用场景
1、hash模式的路由不需要服务器(后端)的支持。
2、适用于简单的单页面应用(SPA)。
示例

// src/router/index.ts
// 引入createWebHashHistory
import {
    createRouter, createWebHashHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

const routes = [
  {
   
    path: '/',
    component: Home
  },
  {
   
    path: '/about',
    component: About
  }
];

const router = createRouter({
   
// 配置路由器使用 Hash模式
  history: createWebHashHistory(),
  routes
});

export default router;

2、history 模式

特点
1、使用 HTML5 的 History API 来实现真正的 URL 路径变化。
2、需要服务器端的支持,以确保在直接访问某个路由时能够正确返回应用的入口文件。
3、更符合传统的 URL 形式,没有 # 符号。
使用场景
1、当你需要更友好的 URL 形式时,推荐使用 history 模式。
2、适用于复杂的单页面应用(SPA)。
示例

// src/router/index.js
// 导入createWebHistory
import {
    createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

const routes = [
  {
   
    path: '/',
    component: Home
  },
  {
   
    path: '/about',
    component: About
  }
];

const router = createRouter({
   
// 配置路由器使用 History模式
  history: createWebHistory(),
  routes
});

export default router;

二、to的两种写法及命名路由

在 Vue Router 中,路由链接 () 的 to 属性可以有两种写法:字符串形式对象形式

1、to的写法1:字符串形式

字符串形式的特点是:直接使用字符串来指定目标路径,简洁明了,适合简单的路由链接。
示例

<template>
  <div>
  	  <!-- <RouterLink to="/">Home</RouterLink>| -->
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link> 
  </div>
</template>
<script setup>
import {
    RouterLink } from 'vue-router'

</script>

2、to的写法2:对象形式

对象形式的特点是:使用对象来指定目标路径及其相关参数,适合复杂的路由链接,特别是需要传递参数或查询字符串的情况。
示例

<template>
  <div>
      <router-link :to="{ name: 'Home' }">Home</router-link> |
      <router-link :to="{ name: 'About' }">About</router-link> 
  </div>
</template>

3、命名路由

定义:在 Vue Router 中,命名路由(Named Routes)是一种通过给路由起名字来引用它们的方法。使用命名路由可以使你的代码更具可读性和可维护性,特别是在需要动态生成链接或编程式导航时非常有用。

// src/router/index.js
import {
    createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

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

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

export default router;
<!-- src/App.vue -->
<template>
  <div>
    <nav>
      <router-link :to="{ name: 'Home' }">Home</router-link> |
      <router-link :to="{ name: 'About' }">About</router-link> |
    </nav>
  </div>
</template>

<script>
</script>

三、嵌套路由

嵌套路由(Nested Routes)是 Vue Router 中一个非常强大的功能,它允许你在父路由组件内部嵌套子路由组件。这样可以创建复杂的多级导航结构,例如带有侧边栏的仪表板、多步骤表单等。
示例

假设你有一个简单的应用,包含一个主页和一个带有子路由的用户资料页面。用户资料页面有两个子页面:个人资料和设置。

  1. 创建路由配置
// src/router/index.js
import {
    createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import UserProfile from '../views/UserProfile.vue';
import ProfileDetails from '../components/ProfileDetails.vue';
import Settings from '../components/Settings.vue';

const routes = [
  {
   
    path: '/',
    name: 'Home',
    component: Home
  },
  {
   
    path: '/user/:id',
    name: 'UserProfile',
    component: UserProfile,
    // 定义子路由
    children: [
      {
   
        path: 'profile',
        name: 'ProfileDetails',
        component:

标签:About,vue,import,笔记,router,Home,路由
From: https://blog.csdn.net/weixin_43915285/article/details/143633469

相关文章

  • 前端笔记1-vue:状态管理库-Pinia
    这里写目录标题前言一、Pinia的主要特点1、类型安全2、模块化设计3、简洁的API4、热重载支持5、插件系统二、Pinia的使用1、基本用法(1)、安装Pinia(2)、创建Store(3)、注册Store(4)、在组件中使用Store2、storeToRefs的使用使用步骤storeToRefs与toRefs的区别3、$su......
  • 【Vue3】知识汇总,附详细定义和源码详解,后续出微信小程序项目(1)
    ====================快速跳转:我的个人博客主页......
  • VUE3 script setup里面如何动态更新整个页面的背景图片
    1.使用内联样式和响应式数据步骤一:创建响应式数据来存储背景图片的URL在scriptsetup中,可以使用ref来创建一个响应式的变量来存储背景图片的URL。<template><div><button@click="changeBackground">更换背景图片</button></div></template><scriptsetup>......
  • ospf静态路由基础教程
     需要准备的设备如下(这边推荐把地址标出来防止敲的中途忘记)  我们这边给PC1和PC2顺便配置好 第一步,我们需配置端口,这边我给需要配置的端口地址圈起来我们已经清楚了每个路由器端口需要配置的地址,我们就可以开始配了 !!!第一台路由器是需要配置4个端口不要忘了!!!......
  • vue跨页面调用函数
    1、在utils文件夹下创建中间件middle.js//中间件实现跨页面调用方法importVuefrom'vue'exportdefaultnewVue2、被调用页面代码<template></template><script>importMiddlefrom'@/utils/middle.js';exportdefault{mounted(){let......
  • 《ASP.Net Core技术内幕与项目实战》读书笔记_1
    ch1.NETCore入门.NET介绍这一章主要说的是.NetCore、.NetFramework、.NetStanard三个之间的关系。通俗来讲就是Core是新出的、能跨平台,Framwork是老版的、不能跨平台,Standard是为了在Framework、Core、Xamarin中统一库的使用而定制的规范,以便于开发出来的库可以在多个平......
  • vue3 provide的值 在回调函数中改变,inject 如何获取到最新的值?
    需求:父组件,通过provide传递了视频方向的响应式值,该值会有一个初始化的默认值,并在获取视频方向的回调函数中,来动态改变子组件,需要获取到父组件传递的视频方向,来执行一些逻辑。这里我们在子组件中通过父组件传递响应式的变量,子组件接受后,通过watch监听该变量的改变,来动态执......
  • 「笔记」可撤销背包
    目录写在前面引入分析代码例题AtCoderABC321FCF1111DCCPC2024HarbinE写在最后写在前面vp24harbin时E前面的一切全都会了就是不会撤销背包,以为要上多项式科技于是跑路了,vp快结束了跟坐牢计算几何的dztlb大神一说他说他会呃呃,完蛋。引入P4141消失之物:给定\(n\)......
  • [豪の学习笔记] CI/CD相关 - Docker
    一、docker常见命令单独下载镜像文件dockerpull查看本地镜像文件dockerimages删除本地镜像文件dockerrmi基于dockerfile构建自定义镜像dockerbuild将打包好的镜像保存在本地dockersave加载外部镜像文件dockerload将本地镜像推送到镜像仓库dockerpush创建并......
  • Spring学习笔记_30——事务接口PlatformTransactionManager
    PlatformTransactionManager是Spring框架中事务管理的核心接口,它负责管理事务的创建、提交和回滚等操作。源码/**Copyright2002-2020theoriginalauthororauthors.**LicensedundertheApacheLicense,Version2.0(the"License");*youmaynotusethis......