Vue3全家桶 - VueRouter - 【1】快速使用(创建路由模块 + 规定路由模式 + 使用路由规则 + RouterView-RouterLink)

VueRouter

  • Vue-Router官网;
  • vue-routervue.js 官方给出的路由解决方案,能够轻松的管理 SPA 项目中组件的切换;
  • 安装:yarn add vue-router@4

快速使用

1.1 创建路由模块

  • 在项目中的 src 文件夹中创建一个 router 文件夹,在其中创建 index.js 模块;
  • 采用 createRouter() 创建路由,并暴露出去;
  • main.js 文件中初始化路由模块 app.use(router)
  • 示例代码:
    • router/index.js
    import { createRouter } from 'vue-router'// TODO 创建路由
    const router = createRouter({// 相关配置
    })export default router
    
    • main.js
    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'  // 引入路由模块
    let app = createApp(App)app.use(router) // 初始化路由插件app.mount('#app')
    

1.2 规定路由模式

  • hsitory路由模式可采用:
  • createWebHashHistory()hash模式:
    • 它在内部传递的实际URL之前使用了一个哈希字符#
    • 由于这部分URL从未被发送到服务器,所以它不需要在服务器层面上进行任何特殊处理;
  • createWebHistory()history模式,推荐使用;
    • 当使用这种历史模式时,URL会看起来很正常(URL中不带#号);
    • 由于我们的应用是一个单页的客户端应用,如果没有适当的服务器配置,用户在浏览器中直接访问URL,就会得到一个404错误,要解决这个问题,你需要做的就是在你的服务器上添加一个简单的回退路由,如果URL不匹配任何静态资源,它应提供与你的应用程序中的index.html相同的页面;
  • 示例代码:
    • history路由模式:
      import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'// TODO 创建路由
      const router = createRouter({// TODO 规定路由模式history: createWebHistory(),
      })export default router
      
    • hash路由模式:
      import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'// TODO 创建路由
      const router = createRouter({// TODO 规定路由模式history: createWebHashHistory(),
      })export default router
      

1.3 使用路由规则

  • routes配置路由规则:
    • path:路由匹配的URL
    • name:当路由指向此页面时显示的名字;
    • component:路由调用这个页面时加载的组件;
  • 路由模块用到的组件:
    • HomeVue.vue
      <script setup>
      import { ref, reactive, computed, onMounted } from 'vue'onMounted(() => {});
      </script><template><div class="home">网站首页界面</div>
      </template><style scoped>
      .home {color: #fff;font-size: 24px;background-color: #ff0040;
      }
      </style>
      
    • BlogHomeVue.vue
      <script setup>
      import { ref, reactive, computed, onMounted } from 'vue'onMounted(() => {});
      </script><template><div class="blog-home">博客首页界面</div>
      </template><style scoped>
      .blog-home {color: #fff;font-size: 24px;background-color: chartreuse;
      }
      </style>
      
  • 创建路由规则数组并使用:
    import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'// TODO 创建路由规则数组
    const routes = [{path: '/home',name: 'home',component: () => import('@/views/HomeVue.vue')},{path: '/blog',name: 'blog',component: () => import('@/views/BlogHomeVue.vue')}
    ]// TODO 创建路由
    const router = createRouter({// TODO 规定路由模式history: createWebHistory(),routes
    })export default router
    

1.4 声明路由链接(RouterLink) 和 路由出口(RouterView)

  • 在组件模块中声明路由链接和占位符:
    • <router-link></router-link>:路由链接,to 属性则为点击此元素,需要切换的路由地址;
      • 🔺 注意
        • 如果需要配合激活类名使用,需要使用 active-class 进行指定;
        <router-link to="路径" active-class="类名" > xxx </router-link>
        
    • <router-view />:路由占位符(Vue2中的路由出口),路由切换的视图展示的位置;
  • 示例代码:
    • App.vue:(此处有可能URL地址中仍然带有#号,需要重启项目)
      <script setup>
      import { ref, reactive, computed, onMounted } from 'vue'onMounted(() => {});
      </script><template>
      <!-- 路由链接,点击是路由地址会切换到属性 to 的地方 --><router-link to="/home">首页</router-link> | <router-link to="/blog">博客</router-link><hr><!-- 路由试图,路由切换组件展示的地方,路由出口 --><router-view />
      </template>
      
  • 最终运行展示:
    image.png

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

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

相关文章

【智慧公寓】东胜物联嵌入式硬件解决方案,为智慧公寓解决方案商降本增效,更快实现产品规模化生产

方案背景 东胜物联本次服务的客户是一家专注于提供智慧公寓解决方案的欧洲企业&#xff0c;该公司旨在为用户提供智能&#xff0c;便捷&#xff0c;安全的生活体验。其解决方案涵盖智慧公寓控制、自动化、能源管理和智能建筑&#xff0c;它的使命是通过复杂的控制系统使用户能…

【OpenGL实现 03】纹理贴图原理和实现

目录 一、说明二、纹理贴图原理2.1 纹理融合原理2.2 UV坐标原理 三、生成纹理对象3.1 需要在VAO上绑定纹理坐标3.2 纹理传递3.3 纹理buffer生成 四、代码实现&#xff1a;五、着色器4.1 片段4.2 顶点 五、后记 一、说明 本篇叙述在画出图元的时候&#xff0c;如何贴图纹理图片…

局域网管理工具

每个组织的业务运营方法都是独一无二的&#xff0c;其网络基础设施也是如此&#xff0c;由于随着超融合基础设施等新计算技术的发展&#xff0c;局域网变得越来越复杂&#xff0c;因此局域网管理也应该如此&#xff0c;组织需要量身定制的局域网管理解决方案&#xff0c;这些解…

probiller怎么订阅

很多小伙伴想订阅probiller&#xff0c;但是不知道怎么订阅&#xff0c;这里我使用的是556150的卡订阅的&#xff0c;亲测~~ 所以有想订阅的小伙伴可以点击获取5561卡片&#xff0c;此卡0年费、0月费 下面请看订阅记录 开卡步骤请看图 卡信息在卡中心&#xff0c;cvc安全码 …

(五)关系数据库标准语言SQL

注&#xff1a;课堂讲义使用的数据库 5.1利用SQL语言建立数据库 5.1.1 create Database 5.1.2 create schema...authorization... 创建数据库和创建模式的区别&#xff1a; 数据库是架构的集合&#xff0c;架构是表的集合。但在MySQL中&#xff0c;他们使用的方式是相同的。 …

深入探索HAProxy:高性能负载均衡器的奥秘

目录 引言 一、HAProxy基础知识 &#xff08;一&#xff09;HAProxy概述 &#xff08;二&#xff09;核心特性 &#xff08;三&#xff09;支持调度算法 二、安装haproxy &#xff08;一&#xff09;下载源码包 &#xff08;二&#xff09;解决依赖环境 &#xff08;三…

Linux系统安装APITable智能表格并结合内网穿透实现公网访问本地服务

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台&#xff0c;是一款面向 API 的智能多维表格。它将复杂的可视化数据库、电子表格、实时在线协同、低代码开发技术四合为一&am…

力扣:118. 杨辉三角

力扣&#xff1a;118. 杨辉三角 描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输…

第三百九十五回

文章目录 1. 概念介绍2. 生命周期状态与方法2.1 生命周期状态2.2 生命周期方法2.3 使用方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何监听组件的生命周期"相关的内容&#xff0c;本章回中将介绍生命周期库:Lifecycle.闲话休提&#xff0c;让我们一起Talk…

Python-Pong-Game

我还加了音效&#xff0c;类似于小时候游戏机上的弹球游戏 import os import turtle import pygame#初始化pygame pygame.init()#加载声音文件 bounce_sound pygame.mixer.Sound("bounce.mp3")wn turtle.Screen() wn.title("Pong by ") wn.bgcolor(&qu…

力扣题目训练(18)

2024年2月11日力扣题目训练 2024年2月11日力扣题目训练561. 数组拆分566. 重塑矩阵572. 另一棵树的子树264. 丑数 II274. H 指数127. 单词接龙 2024年2月11日力扣题目训练 2024年2月11日第十八天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包括简单题3道、中等…

光栅化处理(Rasterization)

1.垂直可视角度 ​ 通常使用不同镜头的相机拍摄同一物品的时候&#xff0c;其可以看到的物体的范围是不同的&#xff0c;那么如何表示这一镜头下摄像机所能看到的范围呢&#xff1f;我们定义了一个概念——可视角。如下图所示(两条红线所框出来的角)&#xff1a; 实际上当我们…

LoadBalancer 客户端的负载均衡器+openFeign 请求转发

LoadBalancer Spring Cloud LoadBalancer是Spring Cloud中负责客户端负载均衡的模块&#xff0c;其主要原理是从nacos中获取服务列表通过选择合适的服务实例来实现负载均衡。 源码跟踪 可以看到这里的intercept()方法&#xff0c;拦截了用户的HttpRequest请求&#xff0c;然…

【鸿蒙 HarmonyOS 4.0】通知

一、介绍 通知旨在让用户以合适的方式及时获得有用的新消息&#xff0c;帮助用户高效地处理任务。应用可以通过通知接口发送通知消息&#xff0c;用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用&#xff0c;通知主要有以下使用场景&#xff1a; 显示接…

ctfshow web入门 php特性 web146-web150

1.web146 :被过滤了&#xff0c;三元运算符用不了&#xff0c;还可以用位运算符&#xff0c;逻辑运算符,等&#xff0c;逻辑运算符要注意或运算符的短路性 eval(return 1|phpinfo()|1) eval(return 1phpinfo()|1) payload&#xff1a; v11&v20&v3(~%8C%86%8C%8B%9A%92…

粉嘟嘟的免费wordpress模板

粉色好看的wordpress免费模板&#xff0c;用免费wordpress模板也可以搭建网站。 https://www.wpniu.com/themes/11.html

产品开发流程的意义:确保事情做正确——以苹果公司的iPhone为例

产品开发流程的意义&#xff1a;确保事情做正确——以苹果公司的iPhone为例 在当今高度竞争的商业环境中&#xff0c;产品开发流程的重要性愈发凸显。一个精心设计和执行的产品开发流程不仅确保了产品开发的顺利进行&#xff0c;同时也为产品的质量和市场竞争力提供了坚实的保…

Anaconda 的一些配置

Anaconda 安装及修改环境默认位置 https://blog.csdn.net/qq_54562136/article/details/128932352 最重要的一步&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;改文件夹权限 Anaconda创建、激活、退出、删除虚拟环境 修改pip install 默认安装路径

你真的用对了知识管理系统了吗?这篇文章教会你

面对信息化社会的信息爆炸&#xff0c;知识管理系统如同一艘救生船&#xff0c;帮助我们捕捉、储存、共享重要的知识&#xff0c;并提高工作效率。但是&#xff0c;你真的用对了知识管理系统吗&#xff1f;让这篇文章成为你的参考指南。 了解知识管理系统的功能导则 首先&…

数据通信练习题

1.0osi七层模型 应用层 data 表示层 会话层 传输层 数据段 防火墙&#xff0c;端口&#xff08;TCP UDP&#xff09; 网络层 数据包 路由器 数据链路层 数据帧 交换机 物理层 比特流 网卡 2.IP地址分类 私有地址 A类 0--127 10.0.0.0…