Vue3框架中路由的使用和局部刷新的功能(第十一课)

news2024/12/30 3:56:15

 

 

 

 

 

 

使用 vue-router 的步 :
p 第一步: 创建路由需要映射的组件 面);
p 第二步: 通过 createRouter 路由 routes history 模式
ü 配置路由映射 : 组件和路径映射关系 routes 数组;
ü 创建基于hash或 history 的模式;
p 第三步:使用app注册路由对象 (use 法);
p 第四步:路由使用: 通过 <router-link> <router-view>
n router-link 事实 有很 属性 以配
to 属性:
p 是一个字符串,或者是一个对象
replace 属性:
p replace 属性的话,当点击时,会调 router.replace(), router.push();
active-class属性:
p 设置激活 a 元素后应用的class,默认是 router-link-active
exact-active-class 属性:
p 链接精准激活时,应用于渲染的 <a> class,默认是 router-link-exact-active;

 

编号2
编号3

编号四

编号五

 

编号六
编号七
编号八

 

用到了文件的信息

 路由文件的配置信息

/* eslint-disable indent */
import { createRouter, createWebHashHistory, createWebHistory, RouteRecordRaw } from 'vue-router'
import HomeView from '../views/HomeView.vue'

// 第一步 配置路由的基本信息内容
// 第二步 将路由的必要包文件导入进来
// 第三步 定义变量 配置文件信息
const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/:pathMatch(.*)*',
    name: 'NotFpund',
    component: () => import(/* webpackChunkName: "about" */ '../views/NotFpund.vue')
  },

  {
    path: '/two/:id:name',
    name: 'two',
    component: () => import(/* webpackChunkName: "about" */ '../views/Two.vue')
  },
  {
    path: '/four',
    name: 'four',
    component: () => import(/* webpackChunkName: "about" */ '../views/four.vue')
  },
  {
    path: '/abouta',
    name: 'abouta',
    component: () => import(/* webpackChunkName: "about" */ '../views/abouta.vue'),
    children: [
      {
        path: '/abouta/aboutson1',
        name: 'aboutson1',
        component: () => import(/* webpackChunkName: "about" */ '../views/aboutson1.vue')
      },
      {
        path: '/abouta/aboutson2',
        name: 'aboutson2',
        component: () => import(/* webpackChunkName: "about" */ '../views/aboutson2.vue')
      },
      {
        path: '/abouta/aboutson3',
        name: 'aboutson3',
        component: () => import(/* webpackChunkName: "about" */ '../views/aboutson3.vue'),
        children: [
          {
            path: '/abouta/aboutson3/aboutb',
            name: 'aboutb',
            component: () => import(/* webpackChunkName: "about" */ '../views/aboutb.vue')
          },
          {
            path: '/abouta/aboutson3/aboutc',
            name: 'aboutc',
            component: () => import(/* webpackChunkName: "about" */ '../views/aboutc.vue')
          }
        ]
      }
    ]
  },

  {
    path: '/aboutb',
    name: 'aboutb',
    component: () => import(/* webpackChunkName: "about" */ '../views/aboutb.vue')
  },
  {
    path: '/aboutc',
    name: 'aboutc',
    component: () => import(/* webpackChunkName: "about" */ '../views/aboutc.vue')
  },
  {
    path: '/fiver',
    name: 'fiver',
    component: () => import(/* webpackChunkName: "about" */ '../views/fiver.vue')
  },
  {
    path: '/three',
    name: 'three',
    component: () => import(/* webpackChunkName: "about" */ '../views/three.vue'),
    meta: {
      name: 'qhy',
      age: 34
    }
  },

  {
    path: '/about',
    name: 'about',
    // 路由的赖加载技术
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  },

  {
    path: '/one',
    name: 'one',
    component: () => import(/* webpackChunkName: "about" */ '../views/One.vue')
  }

]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  // history: createWebHashHistory(process.env.BASE_URL),
  routes
})

// 增加一个动态的路由
const addrount = {
  path: '/addrount',
  name: 'addroun',
  component: () => import(/* webpackChunkName: "about" */ '../views/addroun.vue')
}
router.addRoute(addrount)

export default router

控制器文件信息

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

// import App from '../01 状态管理/App.vue'
// 注册状态管理
import store from './store'
// 注册路由
import router from './router'

createApp(App).use(router).use(store).mount('#app')

一级目录

<template>
  <nav>
    <router-link to="/">Home</router-link> &nbsp;&nbsp;&nbsp;
    <router-link to="/about">About</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="/one">One页面</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="/two/123456/admiander">Two页面</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="three">Three页面</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="four">four页面</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="fiver" active-class="root">fiver页面</router-link>&nbsp;&nbsp;&nbsp;
    <router-link to="NotFpund">NotFpund</router-link>&nbsp;&nbsp;&nbsp;
    <router-view></router-view>
    <button>我是按钮单机我去往其他的页面</button>
  </nav>
</template>

<script>
export default {
  created () {
    console.log(this.$route)
  }

}
</script>

<style>
*{
  margin-top: 40px;
}
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #0080ff;
}

nav {
  padding: 30px;
  font-weight: 700;
  color: darkcyan;
}

nav a {
  font-weight: bold;
  color: #2c3e50;
}

nav a.router-link-exact-active {
  color: #42b983;
}
.root {
  background-color: rgb(0, 0, 0);
  color: green;
}
</style>

二级目录

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="One">
      <h1>我是One页面的信息数据</h1>
      <h3>Essential Links</h3>
      <ul>
        <router-link to="abouta">关于公司内容</router-link>&nbsp;&nbsp;&nbsp;|
        <router-link to="aboutb">关于注册页面</router-link>&nbsp;&nbsp;&nbsp;|
        <router-link to="aboutc">关于登录页面</router-link>&nbsp;&nbsp;&nbsp;|
        <router-view></router-view>
      </ul>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(50, 169, 14);
    color: white;
    border-radius: 20px;
  }
</style>

三级目录

<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <div class="Two">
    <h1>我是abouta页面的信息数据</h1>
    <h3>Ecosystem</h3>
    <h4>abouta页面的介绍</h4>
    <div>
      <router-link to="abouta/aboutson1">aboutson1</router-link>&nbsp;|
      <router-link to="abouta/aboutson2">aboutson2</router-link>&nbsp;|
      <router-link to="abouta/aboutson2">aboutson3</router-link>&nbsp;|
      <router-link to="abouta">关于公司内容</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="aboutb">关于注册页面</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="aboutc">关于登录页面</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="addroun">增加一个路由</router-link>&nbsp;&nbsp;&nbsp;|
      <router-view></router-view>
    </div>
  </div>
</template>
  <style scoped>
* {
  background-color: rgb(255, 255, 255);
  color: rgb(0, 0, 0);
  border-radius: 20px;
}
</style>

四级目录

<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <div class="aboutason2">
    <h1>我是aboutason2页面的信息数据</h1>
    <h3>Ecosystem</h3>
    <h4>abouta页面的介绍</h4>
    <router-link to="abouta">关于公司内容</router-link>&nbsp;&nbsp;&nbsp;|
    <router-link to="aboutb">关于注册页面</router-link>&nbsp;&nbsp;&nbsp;|
    <router-link to="aboutc">关于登录页面</router-link>&nbsp;&nbsp;&nbsp;|
    <router-view></router-view>
  </div>
</template>

一级目录的其他文件

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="Two">
      <h1>我是Two页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(13, 0, 255);
    color: rgb(206, 9, 9);
    border-radius: 20px;
  }
</style>

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="Three">
      <h1>我是Three页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(174, 234, 10);
    color: rgb(255, 255, 255);
    border-radius: 20px;
  }
</style>

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="four">
      <h1>我是Four页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(0, 68, 105);
    color: rgb(255, 0, 0);
    border-radius: 20px;
  }
</style>


<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="Fiver">
      <h1>我是Fiver页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(255, 0, 195);
    color: rgb(81, 0, 255);
    border-radius: 20px;
  }
</style>


<template>
    <h2>Not Fund:{{ $route.params.pathMatch}}</h2>
</template>

二级目录的其他文件

<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <div class="Two">
    <h1>我是abouta页面的信息数据</h1>
    <h3>Ecosystem</h3>
    <h4>abouta页面的介绍</h4>
    <div>
      <router-link to="abouta/aboutson1">aboutson1</router-link>&nbsp;|
      <router-link to="abouta/aboutson2">aboutson2</router-link>&nbsp;|
      <router-link to="abouta/aboutson2">aboutson3</router-link>&nbsp;|
      <router-link to="abouta">关于公司内容</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="aboutb">关于注册页面</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="aboutc">关于登录页面</router-link>&nbsp;&nbsp;&nbsp;|
      <router-link to="addroun">增加一个路由</router-link>&nbsp;&nbsp;&nbsp;|
      <router-view></router-view>
    </div>
  </div>
</template>
  <style scoped>
* {
  background-color: rgb(255, 255, 255);
  color: rgb(0, 0, 0);
  border-radius: 20px;
}
</style>

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="Two">
      <h1>我是aboutb页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(236, 235, 255);
    color: rgb(25, 141, 44);
    border-radius: 20px;
  }
</style>

<!-- eslint-disable vue/multi-word-component-names -->
<template>
    <div class="Two">
      <h1>我是aboutc页面的信息数据</h1>
      <h3>Ecosystem</h3>
    </div>
  </template>
  <style scoped>
  *{
    background-color: rgb(236, 235, 255);
    color: rgb(57, 132, 218);
    border-radius: 20px;
  }
</style>

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

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

相关文章

linux杀毒软件clamav安装

clamav 简介 ClamAV is an open source (GPLv2) anti-virus toolkit, designed especially for e-mail scanning on mail gateways. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool …

Git的基本使用

Git 1.Git基础知识 1.1Git简介 更新的历史保存在Gitee中不会丢失的。 1.简介&#xff1a;Git是一个分布式版本管理系统&#xff0c;是为了更好地管理Linux内核开发而创立的。 Git可以在任何时间点&#xff0c;把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复…

AI强势入场,成就史上最快足球

众所周知&#xff0c;卡塔尔是全球最富裕的国度之一&#xff0c;是世界第一大液化天然气生成和出口国。丰富的石油资源&#xff0c;几乎让每一名原住民从出生之日起就实现财务自由&#xff0c;人均GDP高达6万多美元&#xff0c;钞能力毋庸置疑。 2022年世界杯正是在这片富饶的土…

图论 - 拓扑排序

有向图的拓扑序列 给定一个 nnn 个点 mmm 条边的有向图&#xff0c;点的编号是 111 到 nnn&#xff0c;图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列&#xff0c;如果拓扑序列不存在&#xff0c;则输出 −1。 若一个由图中所有点构成的序列 AAA 满足&#xf…

调试-一些奇怪的现象-以及const的作用

今天给大家看一些奇怪的例子&#xff0c;我们用调试来看看这到底是什么情况&#xff0c;本次选取环境为vs2019 话不多说&#xff0c;我们直接来看例子 #include <stdio.h>int main() {int i 0;int arr[10] { 0 };for (i 0; i < 12; i){arr[i] 0;printf("he…

压缩包加密、解密

压缩包文件大家都经常使用&#xff0c;经常用来压缩文件之后再转发给别人&#xff0c;网上下载的软件&#xff0c;有时候也是压缩包形式下载下来&#xff0c;解压之后才是软件。相信大家一定也遇到过加密的压缩包文件。今天和大家分享如何加密压缩包&#xff0c;以及如何解密压…

114.(leaflet篇)leaflet空间判断-点与圆的空间关系

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【SpringBoot】对于yaml的详细学习和三种属性赋值的实战详解

一.yaml详细讲解 1.1 什么是yaml&#xff1f; YAML是一种数据序列化语言&#xff0c;通常用于编写配置文件。业界对YAML有不同的看法。有些人会说YAML代表另一种标记语言。其他人认为“YAML不是标记语言”&#xff08;“YAML并非标记语言”&#xff09;。“YAML”只是这句话的…

CentOS中使用Docker部署带postgis的postgresql

场景 CentOS中使用Docker来部署Postgresql&#xff1a; CentOS中使用Docker来部署Postgresql_霸道流氓气质的博客-CSDN博客 上面安装的postgresql还需自行安装postgis插件&#xff0c;是否可以直接安装带postgis插件的postgresql。 注&#xff1a; 博客&#xff1a;https:…

RKMEDIA使用简介

瑞芯微&#xff08;rockchip&#xff09;芯片现在嵌入式行业使用的逐渐多了&#xff0c;本栏主要介绍rv1126/rv1109上的媒体框架 rkmedia的使用以及常遇到的问题。 希望可以给各位使用rkmedia的小伙伴一些帮助&#xff0c;同时也是自己工作的记录。 rkmedia的手册在sdk目录下/…

windows10系统安装nvm切换电脑node版本

介绍 nvm 是 node version manager&#xff08;node 版本管理工具&#xff09;的缩写&#xff0c;是一个命令行工具&#xff0c;用于管理和切换到不同版本的 node.js。 不同的项目可能需要不同版本的 node.js 和 npm&#xff08;node 包管理器&#xff09;&#xff0c;例如&a…

(二)devops持续集成开发——jenkins的权限管理配置

前言 jenkins作为目前主流的devops工具&#xff0c;受到了广大开发用户的追捧。由于其丰富的插件库&#xff0c;其可插拔的功能使得其功能和生态都十分强大。本节内容是关于jenkins的权限管理组件Role-based Authorization Strategy的安装及使用。 正文 下载安装Role-based A…

极验--一键通过模式逆向分析

内容仅供参考学习 目标 网址&#xff1a;https://www.geetest.com/demo/fullpage.html 这次只是简单的进行一次分析&#xff0c;如果有需要可以直接看最后 流程分析 打开调试工具&#xff0c;刷新一下页面&#xff0c;获取初始的交互信息&#xff1a; 先看第一个&#x…

3.RabbitMQ工作模式介绍

3.RabbitMQ工作模式介绍.md 文章目录3.RabbitMQ工作模式介绍.md1.简单模式1.1总结2.Work Queues 工作队列模式2.1 模式说明2.2 代码编写2.3 总结3.Pub/Sub 订阅模式3.1 模式说明3.2 使用场景3.3 代码实现3.4 总结&#xff1a;4.Routing 路由模式4.1 模式说明4.2 代码编写4.3 总…

CAS:304014-13-9,淬灭剂QSY21 NHS ,QSY 21NHS 试剂供应

一&#xff1a;产品描述 1、名称 QSY 21NHS 淬灭剂QSY21 NHS 淬灭剂QSY21 NHS ester 2、CAS编号&#xff1a;304014-13-9 3、分子式&#xff1a;C45H39ClN4O7S 4、分子量&#xff1a;815.34 5、外观&#xff1a; 紫色固体 &#xff08;具体由其分子量大小决定外观&am…

ORB-SLAM2 ---- KeyFrameDatabase::DetectRelocalizationCandidates函数

目录 1.函数作用 2.步骤 3.code 4.函数解析 4.1 找出和当前帧具有公共单词(word)的所有关键帧 4.2 统计上述关键帧中与当前帧F具有共同单词最多的单词数maxCommonWords&#xff0c;用来设定阈值1 4.3 遍历上述关键帧&#xff0c;挑选出共有单词数大于阈值1的及其和当…

JUC并发编程第五篇,如何优雅的使用线程中断机制和线程等待唤醒机制?

JUC并发编程第五篇&#xff0c;如何优雅的使用线程中断机制和线程等待唤醒机制&#xff1f;一、线程中断机制1. 什么是线程中断&#xff1f;2. 你知道 interrupt() 方法的含义吗&#xff1f;3. 如何使用中断标识优雅的停止线程&#xff1f;第一种&#xff1a;通过volatile变量实…

元年智答|数据洞察功能介绍

什么是数据洞察 随着企业积累数据量增多&#xff0c;数据分析师常常需要处理“长且宽”的数据集。依靠人的经验处理海量数据&#xff0c;从海量数据中发掘出有用的信息无异于大海捞针。虽然人工智能技术的普及和单位算力价格的下降大大降低了数据挖掘的门槛&#xff0c;但是面…

消息队列概述与扩展

一、消息队列的特性 与业务解藕&#xff1a;一个具有普适性质的消息队列组件不需要考虑上层的业务模型&#xff0c;只做好消息的分发就可以了&#xff0c;上层业务的不同模块反而需要依赖消息队列所定义的规范进行通信。FIFO&#xff1a;先投递先到达的保证是一个消息队列和一…

【HTML】猜拳小游戏

博主&#xff1a;&#x1f44d;不许代码码上红 欢迎&#xff1a;&#x1f40b;点赞、收藏、关注、评论。 格言&#xff1a; 大鹏一日同风起&#xff0c;扶摇直上九万里。 文章目录一、HTML完整源码二、效果三、完整资源文件一、HTML完整源码 <!DOCTYPE html PUBLIC "…