5.10 Vue配置路由(vue-router)

news2025/1/18 8:15:20

Vue配置路由vue-router

  • 目录
    • 一、 路由vue-router概述
    • 二、 配置步骤
      • 1. 安装 Vue Router
      • 2. 安装确认
      • 2. 引入vue-router并使用
      • 3. 注入router
      • 4. 新建视图文件夹和文件
      • 5. 在模板中使用路由

目录

一、 路由vue-router概述

官方网站:https://v3.router.vuejs.org/zh/installation

  • Vue Router 是 Vue.js 官方提供的一种路由管理工具,它可以帮助开发者管理 Vue.js 应用程序的路由,并实现路由跳转、参数传递、嵌套路由等功能。Vue Router 可以将一个单页面应用分成多个视图,在不同的路由之间进行切换,从而实现了应用程序的多页面效果。
  • Vue Router 的核心是路由器(router),路由器负责监听变化并解析 URL,并指导应用程序渲染正确的组件,并在组件之间进行切换。除此之外,Vue Router 还支持动态路由、命名路由、路由重定向、路由拦截、路由嵌套等高级功能。
  • Vue Router 的使用非常简单,只需要定义路由组件,配置路由表,创建路由实例,并将其挂载到 Vue 实例上即可。在模板中使用 组件来生成导航链接,使用 来显示匹配到的视图组件。

二、 配置步骤

如果还没有vue环境,可以参照这篇文章搭建:
5.9 使用Vue CLI创建VUE项目

1. 安装 Vue Router

在使用 Vue Router 之前,你需要先安装它。可以通过 npm 命令行来安装:

# 通过npm安装最新版本的vue-router
npm install vue-router

# 如果你使用的是Vue CLI创建的项目,可以在项目根目录下运行以下命令安装vue-router:
npm install vue-router --save

# 如果你想要使用某个特定版本的vue-router,可以运行以下命令:
npm install vue-router@版本号
例如:npm install vue-router@3.2.0

在这里我们安装3.2.0版本的

终端命令:
npm install vue-router@3.2.0

在这里插入图片描述

2. 安装确认

  1. 确认vue-router版本

    终端命令:
    npm list vue-router

    在这里插入图片描述

  2. 确认package.json文件有vue-router依赖追加

    在这里插入图片描述

    {
      "name": "vue_demo",
      "version": "0.1.0",
      "private": true,
      "scripts": {
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build"
      },
      "dependencies": {
        "core-js": "^3.8.3",
        "register-service-worker": "^1.7.2",
        "vue": "^2.6.11",
        "vue-router": "^3.2.0"
      },
      "devDependencies": {
        "@vue/cli-plugin-babel": "~5.0.0",
        "@vue/cli-plugin-pwa": "~5.0.0",
        "@vue/cli-service": "~5.0.0"
      },
      "browserslist": [
        "> 1%",
        "last 2 versions",
        "not dead",
        "not ie 11"
      ]
    }
    
    

2. 引入vue-router并使用

  1. 在src路径下新建router文件夹和router.js文件(方便路由管理)

    在这里插入图片描述

  2. router.js引入并配置路由表

    import Router from 'vue-router'
    import Vue from 'vue'
    import Home from '../views/Home.vue'
    import About from '../views/About.vue'
    import NotFound from '../views/NotFound.vue'
    
    Vue.use(Router)
    
    // 防止跳转同一路径出异常
    const originalPush = Router.prototype.push
    Router.prototype.push = function push(location, onResolve, onReject) {
      if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
      return originalPush.call(this, location).catch(err => err)
    }
    
    const router = new Router({
      mode: 'history', // 可以使用HTML5历史记录,去掉URL中的#
      routes: [
        {
            path: '/',
            name: 'home',
            component: Home
          },
          {
            path: '/about',
            name: 'about',
            component: About
          },
          {
            path: '/notFound',
            name: 'notFound',
            component: NotFound
          }
      ]
    })
    
    export default router
    
    

3. 注入router

  1. mian.js文件中注入router
    在这里插入图片描述

    import Vue from 'vue'
    import App from './App.vue'
    import './registerServiceWorker'
    
    import router from './router/router.js'
    
    new Vue({
        router, // 注入 router 实例
        render: h => h(App),
      }).$mount('#app')
    
    

4. 新建视图文件夹和文件

在这里插入图片描述

  1. About.vue

    在这里插入图片描述

    <template>
      <div>About</div>
    </template>
    
    <script setup></script>
    
    <style lang="scss" scoped></style>
    
    
  2. Home.vue

    在这里插入图片描述

    <template>
      <div>Home</div>
    </template>
    
    <script setup></script>
    
    <style lang="scss" scoped></style>
    
    
  3. NotFound.vue

    在这里插入图片描述

    <template>
      <div>NotFound</div>
    </template>
    
    <script setup></script>
    
    <style lang="scss" scoped></style>
    
    

5. 在模板中使用路由

  1. 方式一:App.vue

    在这里插入图片描述

    <template>
      <div>
        <div id="app">
          <router-view></router-view>
        </div>
        <div>
          <button @click="changeView1">to_home</button>
          <button @click="changeView2">to_about</button>
          <button @click="changeView3">notFound</button>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: "App",
      components: {},
      methods: {
        changeView1: function () {
          this.$router.push({
            name: "home",
          });
        },
        changeView2: function () {
          this.$router.push({
            name: "about",
          });
        },
        changeView3: function () {
          this.$router.push({
            name: "notFound",
          });
        },
      },
    };
    </script>
    
    <style></style>
    
    
  2. 启动项目:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  3. 方式二:App.vue

    在这里插入图片描述

    <template>
      <div id="app">
        <nav>
          <router-link to="/">首页</router-link>
          <br />
          <router-link to="/about">关于我们</router-link>
          <br />
          <router-link to="/notFound">啥玩意没有</router-link>
        </nav>
        <hr />
        <router-view></router-view>
      </div>
    </template>
    
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

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

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

相关文章

常用模拟低通滤波器的设计——椭圆滤波器

常用模拟低通滤波器的设计——椭圆滤波器 椭圆滤波器又称考尔滤波器&#xff0c;是在通带和阻带范围内都具有等波纹的一种滤波器。椭圆滤波器相比其他类型的滤波器&#xff0c;在阶数相同的条件下有最小的通带和阻带波动&#xff0c;这一点区别于在通带和阻带都平坦的巴特沃斯…

电压220V与380V区别

电压220V与380V区别 1、应用场景2、区分2.1 从室内插座区分&#xff1a;2.2 从房间配电盒空气开关上区分 1、应用场景 绝大部分的小区居民用电&#xff0c;包括农村村民家用电&#xff0c;用的都是220V的电压&#xff0c;甭管家里装了多少台空调&#xff0c;用了多少电器&#…

汽车仪表Cluster/DashBoard芯片型号

前言 随着汽车四化的推进,可以说汽车仪表也变成越来越智能化的一个ECU部件了。市面上的车型很多,油车发展了很多年,都有仪表,电车也发展起来了,车型也非常丰富,也都有仪表。仪表现在是作为多屏中一个屏存在的,现在车上最多的就是屏了,最大的要算中控屏了,有的还有空调…

十一、OpenGL的坐标系统

第一部分概念 OpenGL 坐标系统&#xff1a;OpenGL 坐标系中每个顶点的 x&#xff0c;y&#xff0c;z 坐标都应该在 -1.0 到 1.0 之间&#xff0c;超出这个坐标范围的顶点都将不可见。将一个物体&#xff08;图像&#xff09;渲染到屏幕上&#xff0c;通常经过将物体坐标转换为…

30天从入门到精通TensorFlow1.x 第七天,TensorFlow1.x 模型save()和restore()

文章目录 一、接前一天二、TensorFlow中模型的保存和加载方式三、模型的保存和加载Save()类1. 创建方法以及文件组成2. Saver类的重要参数参数&#xff1a;重要函数参数&#xff1a; 3. Saver类的主要使用函数 四、keras的模型保存和加载1. Keras比较简单&#xff1a;一般有三种…

PLSQL - Months_Between的理解和使用

Months_Between是一个内置的日期操纵函数&#xff0c;用于计算两个日期相隔的月份数。Oracle文档的介绍如下&#xff1a; MONTHS_BETWEEN returns number of months between dates date1 and date2. The month and the last day of the month are defined by the parameter NL…

jenkins主从节点安装及pipeline构建

一、背景 通过Jenkins主节点配置的pipeline下发给从节点执行&#xff0c;从而兼容容器化执行 二、安装主节点 docker-compose.yml jenkins:user: rootrestart: alwaysimage: jenkinsci/blueoceancontainer_name: jenkins# network_mode: hostports:- "8081:8080"-…

BOS EDI Excel 方案简介

BOS EDI & Excel 方案简介 本文将继续分享BOS示例工作流&#xff1a;使用Excel端口和Email端口生成一系列文件&#xff0c;完成与BOS的EDI通信。 下载工作流 下载示例文件 BOS EDI到Excel示例流具有预配置的端口&#xff0c;用于从BOS的EDI集成规范转换以下交易集&…

2022年国赛高教杯数学建模D题气象报文信息卫星通信传输解题全过程文档及程序

2022年国赛高教杯数学建模 D题 气象报文信息卫星通信传输 原题再现 在某些紧急救援任务中&#xff0c;需要进行物资空投。在地面通信系统瘫痪的情形下&#xff0c;为了更好地获得准确完整的地面气象观测信息&#xff0c;通常对任务区域的重要目标点采用派遣气象分队的方式来获…

如果让你来设计CPU之内存篇

哈喽&#xff0c;我是子牙&#xff0c;一个很卷的硬核男人。深入研究Windows内核、Linux内核、Hotspot源码…聚焦做那些大家想学没地方学的课程&#xff1a;手写操作系统、手写虚拟机、手写模拟器、手写编程语言… 目前已经做了两个成熟的课程&#xff1a;手写JVM、手写OS&…

PPP认证协议详解

PPP认证协议详解 1. 引言 PPP&#xff08;Point-to-Point Protocol&#xff09;认证协议在计算机网络中扮演着重要的角色。它是一种用于建立和认证网络连接的协议&#xff0c;广泛应用于各种网络环境&#xff0c;包括互联网接入、虚拟专用网络&#xff08;VPN&#xff09;和远…

【头歌】试的学习

1.基本路径测试 2.画出程序控制流图 3.计算流图的环形复杂度 4.确定线性独立路径的基本集合 5.设计测试用例 基本路径测试 除了逻辑覆盖&#xff0c;还有一种常用的白盒测试的测试方法&#xff1a;基本路径测试。基本路径测试是 Tom McCabe提出的一种白盒测试技术。使用这种技…

c++学习——继承

继承 **继承****继承的案例****继承的三种方式方式&#xff1a;****继承中的对象类型****继承中的构造和析构顺序****继承中同名成员的处理****同名静态成员处理****多继承语法****菱形继承** 继承 普通的输出 #define _CRT_SECURE_NO_WARNINGS #include <iostream> us…

8. 让java性能提升的JIT深度解剖

JVM性能调优 1. C1、C2与Graal编译器1.1 C1编译器1.2 C2编译器1.3 分层编译 2. 热点代码3. 热点探测4. 方法调用计数器5. 回边计数器6. 编译优化技术6.1 方法内联 7. 锁消除8. 栈上分配9. 逃逸分析技术10. 标量替换 本文是按照自己的理解进行笔记总结&#xff0c;如有不正确的地…

【LeetCode热题100】打卡第14天:下一个排列最长有效括号

文章目录 【LeetCode热题100】打卡第14天&#xff1a;下一个排列&最长有效括号下一个排列⛅前言&#x1f512;题目&#x1f511;题解 最长有效括号&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第14天&#xff1a;下一个排列&最长有效括号 下一个排列 …

如何入门挖掘SRC?

挖洞其实算是web渗透中第一个明确的关卡 越过这个坎&#xff0c;从此天高任鸟飞&#xff0c;海阔凭鱼跃。越不过&#xff0c;就永远越不过。 先说平台&#xff1a; 漏洞响应平台&#xff1a;实战渗透测试&#xff0c;同时能获得一些外快。 补天漏洞响应平台&#xff1a;http…

Netty核心技术五--Netty高性能架构设计

1. 线程模型基本介绍 不同的线程模式&#xff0c;对程序的性能有很大影响&#xff0c;为了搞清Netty 线程模式&#xff0c;我们来系统的讲解下 各个线程模式&#xff0c; 最后看看Netty 线程模型有什么优越性.目前存在的线程模型有: 传统阻塞 I/O 服务模型Reactor 模式 根据 R…

郭光灿团队实现低温集成量子纠缠光源

中国科大郭光灿院士团队在集成化量子光源制备研究中取得重要进展。该团队任希锋研究组基于低温集成自发四波混频过程&#xff0c;展示了低温条件下集成量子纠缠光源的制备&#xff0c;相关成果于6月2日发表在光学知名学术期刊Optica上。 “利用低温综合四波混合技术产生纠缠现象…

Mapbox表达式详细解读

初学mapbox 的小伙伴们一定会被表达式给弄的晕头转向的。明明条件判断或者回调函数能解决的问题。mapbox里非得让你用表达式。这确实比较ex。 不过我们既然遇到了,也不要怕,这篇文章我就带着大家一点一点的搞明白这个所谓的表达式。 首先从宏观上讲,要知道为什么使用表达式…

【面试高频】cookie、session、token?看完再也不担心被问了

在以往的面试记录里&#xff0c;我又看到了一个多次被问到的知识点&#xff0c;那就是 cookie、session、token 的区别有哪些&#xff1f;如果现在来问你&#xff0c;不知道你能否说清楚呢&#xff1f; 今天不仅仅是整理出这三者的区别&#xff0c;更重要的是能够真正去理解这三…