vue路由的基本使用

news2024/11/19 20:40:01

文章目录

        • 1.路由的基本使用
        • 2.路由的默认路径
        • 3.嵌套路由
        • 4.路由懒加载
        • 5.动态路由匹配

1.路由的基本使用
  • 安装 vue-router

    npm install vue-router
    
  • 创建路由文件:
    src 目录下创建 router 目录,并在其中创建 index.js 文件。

  • main.js 中使用 vue-router

    import { createApp } from 'vue';
    import App from './App.vue';
    //导入路由器对象
    import router from './router';
    //使用路由器对象
    createApp(App).use(router).mount('#app');
    
  • 配置路由规则:
    router/index.js 文件中:

    //创建路由器对象,以及管理路由配置·url=>组件
    //1、引入函数
    import { createRouter, createWebHistory } from 'vue-router';
    
    //静态导入组件对象
    import Home from '../components/Home';
    import About from '../components/About';
    //配置路由规则
    const routes = [
      //配置一个具体的路由地址对应的页面
      {
        path: '/home',
        component: Home
      },
      {
        path: '/about',
        component: About
      },
    ];
    
    //2、创建路由器对象
    const router = createRouter({
      history: createWebHistory(process.env.BASE_URL),
      //一组路由规则设置到路由器对象中
      //routes:routes
      //如果key和value的值一致,可以简写
      routes,
    });
    //3.导出router
    export default router;
    
  • 创建 HomeAbout 组件:

    • About.vue:

      <template>
        <div>
          <p class="lead">About内容...</p>
        </div>
      </template>
      
      <script>
        export default {
          name: 'About',
        };
      </script>
      
    • Home.vue:

      <template>
        <div>
          <p class="lead">Home内容...</p>
        </div>
      </template>
      
      <script>
        export default {
          name: 'Home',
        };
      </script>
      
  • 编写 App.vue

    <li class="active"><router-link to="/home">Home</router-link></li>
    <li><router-link to="/about">About</router-link></li>
    
    <!-- 组件内容展示区域 -->
    <router-view></router-view>
    
2.路由的默认路径
{
  // 路由默认路径
  path: '/',
  redirect: '/home'
}
3.嵌套路由
{
  path: '/home',
  component: Home,
  children: [
    {
      path: '',
      component: HomeProduct
    },
    {
      path: 'product',
      component: HomeProduct
    },
    {
      path: 'ad',
      component: HomeAd
    }
  ]
}

注意:子级的 path 不需要加 /

4.路由懒加载
  • 替换 import About from '../components/About' 为:

    component:()=>import("../views/About"),
    

在这里插入图片描述

5.动态路由匹配
  • 带参数的动态路由匹配:

    {
      path: "/user/:id",
      component: () => import("../views/User.vue"),
      name: "user",
      props: true, // id的值可以作为props属性传递给组件
    },
    
  • 在组件中接收参数:

    props: ["id"], // 定义组件属性,用于接收保存路由对象中的参数值
    
    this.user = this.users.filter((item) => {
      if (item.id == this.id) {
        return item;
      }
    });
    
    <!-- 每次获取值都需要通过路由对象获取 -->
    编号: {{ $route.params.id }}
    
  1. 404 Not found 路由

    • 新建 NotFound.vue

    • 配置404路由:

      {
        // 404, 匹配路由映射地址
        path: "/:pathMatch(.*)*",
        component: () => import("../views/NotFound.vue"),
      },
      
    • 输出404地址,并跳转页面:

      <h2>没有找到此资源...</h2>
      {{ $route.params.pathMatch }}
      
  2. query方式的参数

    • 第一种方式:字符串拼接

      query传值
      链接地址需要使用字符串模板
      :to = "`xxx=${}`"
      
      <router-link :to="`/order/detail?id=${order.id}&username=${order.username}`">{{ order.username }}</router-link>
      

      输出值:

      <h2>编号:{{ $route.query.id }}</h2>
      <h2>姓名:{{ $route.query.username }}</h2>
      
    • 第二种方式:对象写法

      <router-link :to="{
        // path: '/order/detail',
        name: 'det',
        query: {
          id: order.id,
          username: order.username
        }
      }">{{ order.username }}</router-link>
      

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

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

相关文章

【Linux操作系统】进程优先级

目录 一、为什么要有优先级二、进程优先级1.进程优先级的基本概念2.进程优先级的表现形式3. 默认优先级4.进程优先级的修改5.为什么调整优先级是要受限制的&#xff1f; 一、为什么要有优先级 在学习进程优先级之前&#xff0c;我们要先知道为什么会出现进程优先级这个东西 从…

2015年国赛高教杯数学建模A题太阳影子定位解题全过程文档及程序

2015年国赛高教杯数学建模 A题 太阳影子定位 技术就是通过分析视频中物体的太阳影子变化&#xff0c;确定视频拍摄的地点和日期的一种方法。   1.建立影子长度变化的数学模型&#xff0c;分析影子长度关于各个参数的变化规律&#xff0c;并应用你们建立的模型画出2015年10月…

C++入门day3-面向对象编程(下)

前言&#xff1a;C入门day3-面向对象编程&#xff08;中&#xff09;-CSDN博客 初识&#xff1a;继承特性 继承的基础语法 class A{ public:int a; }; class B:public A { public:int b; }; B类通过继承A类后&#xff0c;内部会继承一个int变量 a&#xff1a;从下图我们可以…

Nginx基础详解2(首页解析过程、进程模型、处理Web请求机制、nginx.conf语法结构)

续&#xff1a;Nginx基础详解1&#xff08;单体部署与集群部署、负载均衡、正反代理、nginx安装&#xff09;-CSDN博客 目录 4.Nginx默认首页的过程解析 5.Nginx进程模型的详解 5.1启动nginx后的关于nginx的进程查看 5.2master进程与process进程 5.3Nginx进程图解 5.4wo…

【已解决】【Hadoop】【./bin的使用】bash: ./bin/hdfs: 没有那个文件或目录

在 Hadoop 环境中&#xff0c;决定何时在命令前添加 ./bin 和如何处理路径 /home/hadoop 与 /usr/local/hadoop 的问题&#xff0c;主要取决于你的当前工作目录和环境变量的设置。以下是一些指导原则&#xff1a; 何时使用 ./bin&#xff1a; 当前目录是 Hadoop 安装目录&…

【分类|回归】深度学习中的分类和回归?离散数据or连续数值?

【分类|回归】深度学习中的分类和回归&#xff1f;离散数据or连续数值&#xff1f; 【分类|回归】深度学习中的分类和回归&#xff1f;离散数据or连续数值&#xff1f; 文章目录 【分类|回归】深度学习中的分类和回归&#xff1f;离散数据or连续数值&#xff1f;前言1.分类问题…

帆软通过JavaScript注入sql,实现数据动态查询

将sql语句设置为参数 新建数据库查询 设置数据库查询的sql语句 添加控件 JavaScript实现sql注入 添加事件 编写JavaScript代码 //获取评价人id var pjrid this.options.form.getWidgetByName("id").getValue();//显示评价人id alert("评价人&#xff1a;&…

单片机串口AT指令操作SIM800、900拨打电话

文章目录 一、前言1.1 功能简介1.2 拨打电话功能的应用场景1.3 SIM900A与SIM800C模块介绍1.4 原理图 三、模块调试3.1 工具软件下载3.2 准备好模块3.3 串口调试助手的设置3.4 初始化配置3.5 拨打电话的测试流程 四、代码实现4.1 底层的命令发送接口4.2 底层数据接收接口4.3 检测…

Cisco Packet Tracer的安装加汉化

这个工具学计算机网络的同学会用到 1.下载安装 网盘链接&#xff1a;https://pan.baidu.com/s/1CmnxAD9MkCtE7pc8Tjw0IA 提取码&#xff1a;frkb 点击第一个进行安装&#xff0c;按步骤来即可。 2.汉化 &#xff08;1&#xff09;复制chinese.ptl文件 &#xff08;2&…

四元组问题

目录 问题描述 输入格式 输出格式 样例输入 样例输出 说明 评测数据规模 运行限制 原题链接 代码思路 问题描述 从小学开始&#xff0c;小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期&#xff0c;他遇到了一个非常有趣的问题&…

【Unity服务】如何使用Unity Version Control

Unity上的线上服务有很多&#xff0c;我们接触到的第一个一般就是Version Control&#xff0c;用于对项目资源的版本管理。 本文介绍如何为项目添加Version Control&#xff0c;并如何使用&#xff0c;以及如何将项目与Version Control断开链接。 其实如果仅仅是对项目资源进…

华盈伯乐 | Bio-Plex多重细胞因子检测技术培训及研讨会现场回顾

精彩华盈现场回顾 迎着朝霞&#xff0c;与会的伙伴们一早踏上了旅程&#xff0c;参与华盈生物与伯乐生命科学联合举办的Bio-Plex多重细胞因子检测技术培训及研讨会活动。随着活动的序幕缓缓拉开&#xff0c;我们迎来了一段充实而富有成效的学习之旅。 精彩开幕 华盈生物的副总…

SpringMVC4-SpringMVC获取请求参数

test_param.html&#xff1a; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>测试请求参数</title> </head> <body> <h1>测…

解决Pymysql has no attribute ‘escape_string‘ 并且无法引入该模块

打印出的pymysql版本是1.4.6 需要import这个module&#xff0c;并且根据pymysql的版本import的方式还不同 import pymysqlif pymysql.__version__ >1.0.0:from pymysql.converters import escape_string else:escape_string lambda x: pymysql.escape_string(x)然而&am…

如何借助Java批量操作Excel文件?

最新技术资源&#xff08;建议收藏&#xff09; https://www.grapecity.com.cn/resources/ 前言 | 问题背景 在操作Excel的场景中&#xff0c;通常会有一些针对Excel的批量操作&#xff0c;批量的意思一般有两种&#xff1a; 对批量的Excel文件进行操作。如导入多个Excel文件…

鸿蒙OpenHarmony【小型系统基础内核(虚实映射)】子系统开发

虚实映射 基本概念 虚实映射是指系统通过内存管理单元&#xff08;MMU&#xff0c;Memory Management Unit&#xff09;将进程空间的虚拟地址与实际的物理地址做映射&#xff0c;并指定相应的访问权限、缓存属性等。程序执行时&#xff0c;CPU访问的是虚拟内存&#xff0c;通…

实现微信小程序中点击单词显示在input的交互功能指南

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

卷积神经网络-学习率

文章目录 一、学习率的定义二、学习率的作用三、学习率的调整方法1.有序调整(1).有序调整StepLR(等间隔调整学习率&#xff09;(2).有序调整MultiStepLR(多间隔调整学习率)(3).有序调整ExponentialLR (指数衰减调整学习率)(4).有序调整CosineAnnealing (余弦退火函数调整学习率…

TypeScript 设计模式之【单例模式】

文章目录 **单例模式**: 独一无二的特工我们为什么需要这样的特工?单例模式的秘密&#xff1a;如何培养这样的特工?特工的利与害代码实现单例模式的主要优点单例模式的主要缺点单例模式的适用场景总结 单例模式: 独一无二的特工 单例模式就像是一个秘密组织里的特殊特工。这…

Java介绍及JDK 21详细安装教程

文章目录 1. 文章简介2. Java和JDK的介绍与关系2.1 Java2.2 JDK 3. Java版本的发展历程4. Java 21安装步骤 1. 文章简介 本文介绍如何Java、JDK、Java的发展及如何快速安装JDK 21。内容详细充实&#xff0c;旨在帮助您快速了解并使用Java。 2. Java和JDK的介绍与关系 2.1 Jav…