前端vue入门(纯代码)30_路由的props配置

news2024/11/23 18:43:19

喜欢的东西太贵了,我一咬牙,狠下心决定不喜欢了!

28.Vue Router--路由的props配置

props配置官网文档

  • props属性用法和params属性差不多,都是要在src/router/index.js文件中配置
// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router';
//引入组件
import About from '../pages/About';
import Home from '../pages/Home';
import Cartoon from '../pages/Cartoon';
import Stars from '../pages/Stars';
import Detail from '../pages/Detail';
//创建并暴露一个路由器
export default new VueRouter({
  // 定义一些路由
  // 每个路由都需要映射到一个组件。
  routes: [
    //配置路由路径和路由组件
    {
      path: '/about',
      component: About, //要跳转到的组件
    },
    {
      //一级路由配置
      path: '/home',
      component: Home,
      children: [
        {
          //二级路由配置
          name: 'Hcartoon',
          path: 'cartoon',
          component: Cartoon,
        },
        {
          //二级路由配置
          path: 'stars',
          component: Stars,
          children: [
             {
              //三级路由配置
              name: 'xiangqing',
              /*使用占位符声明,接收params参数,相当于说先占个位置,
                在路由组件中就可以按照位置进行参数传递*/   
              // params方法传参配置
			  // path: 'detail/:title/:works',
              // query方法传参配置
              path: 'detail',
              component: Detail,
                 
             /*props的第一种写法,值为对象,该对象中的所有key-value都会
             以props的形式传给Detail组件。【静态】*/
              /* props:{a:1,b:'hello'} */

             /* props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的
                所有params参数,以props的形式传给Detail组件。 */
               // props:true

               /*props的第三种写法,props值为函数,
               该函数返回的对象中每一组key-value都会通过props传给路由组件*/
                props($route) {
                  return {
                     title: $route.params.title,
                     works: $route.params.works,
                     a:1,
                     b:'hello'
                  };
                },
                },
            ],
        },
      ],
    },
  ],
});
  • 原本params或query方法传递参数:src/router/index.js文件中
{
    //三级路由配置           
    /*使用占位符声明,接收params参数,相当于说先占个位置,
    在路由组件中就可以按照位置进行参数传递*/  
    name:'xiangqing',
    // params方法传参配置
    // path: 'detail/:title/:works',
    // query方法传参配置
    path: 'detail',
    component: Detail,
},
  • 现在是:params或query方法传参,然后用props配置接收参数:会简化Detail组件模板中的代码复杂度:src/router/index.js文件中
  • 【方法1:对象模式】:当 props 是一个对象时,它将原样设置为组件 props。当 props 是静态的时候很有用。
{
    //三级路由配置           
    /*使用占位符声明,接收params参数,相当于说先占个位置,
    在路由组件中就可以按照位置进行参数传递*/  
    name:'xiangqing',
    path:'detail',
    component: Detail,
    //props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传给Detail组件。【静态】
    props:{a:1,b:'hello'}
},
  • 【方法2:布尔模式】:当 props 设置为 true 时,$route.params 将被设置为组件的 props。

    【注意】:如果使用props配置true的方法,那么传参必须使用params方式才奏效(注意如果是query参数不会奏效的)。

{
    //三级路由配置           
    /*使用占位符声明,接收params参数,相当于说先占个位置,
    在路由组件中就可以按照位置进行参数传递*/  
    name:'xiangqing',
    // params方法传参配置    
    path:'detail/:title/:works',
    component: Detail,
        
    //props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件。
    props:true
},
  • 【方法3:函数模式】:你可以创建一个返回 props 的函数。这允许你将参数转换为其他类型,将静态值与基于路由的值相结合等等。
  • 1.params传参,然后props接收参数
{
    //三级路由配置
    /*使用占位符声明,接收params参数,相当于说先占个位置,
    在路由组件中就可以按照位置进行参数传递*/
    name: 'xiangqing',
    // params方法传参配置    
    path: 'detail/:title/:works',
    component: Detail,

    /*props的第三种写法,props值为函数,该函数返回的对象中
    每一组key-value都会通过props传给路由组件*/
    props($route) {
        return {
            title: $route.params.title,
            works: $route.params.works,
            a:1,
            b:'hello'
        };
    },
},

Stars.vue文件中的模板用params方法传参

<li v-for="s in starList" :key="s.id">
    <!-- 跳转路由并携带params参数,to的字符串写法 -->
    <!-- <router-link :to="`/home/stars/detail/${s.title}/${s.works}`">
    {{ s.title }}
    </router-link> -->

    <!-- 跳转路由并携带params参数,to的对象写法 -->
    <router-link :to="{
    // path:'/home/stars/detail', 
    //params参数:不能用path属性。
    name:'xiangqing',
    params:{
        title:s.title,
        works:s.works
    }
    }
    ">
    {{ s.title }}
    </router-link> 
</li>

Detail.vue中

<template>
	<div>
        <!--  原本params传参    -->
		<!-- <li>明星:{{ $route.params.title }}</li>
		<li>代表作:{{$route.params.works}}</li> -->

        <!--  现在是:params或query方法传参,然后props接收参数:会简化模板中的代码复杂度    -->
        <li>明星:{{title}}</li>
		<li>代表作:{{works}}</li>
		<li>a:{{a}}</li>
		<li>b:{{b}}</li>
	</div>
</template>

<script>
export default {
	name: 'Detail',
    props: ['title', 'works','a','b'],
	mounted() {
		console.log(this.$route);
	},
};
</script>
  • 2.query传参,然后props接收参数【只写变化的配置】
{   
    // query方法传参配置
    path: 'detail',
    /*props的第三种写法,props值为函数,该函数返回的对象中
    每一组key-value都会通过props传给路由组件*/
    props($route) {
        return {
            title: $route.query.title,
            works: $route.query.works,
            a:1,
            b:'hello'
        };
    },
},

Stars.vue文件中的模板用query方法传参

<li v-for="s in starList" :key="s.id">
    <!-- 跳转路由并携带query参数,to的字符串写法 -->
	<!-- <router-link :to="`/home/stars/detail?title=${s.title}&works=${s.works}`">
    {{ s.title }}
    </router-link> -->

    <!-- 跳转路由并携带query参数,to的对象写法 -->
    <router-link :to="{
    // path:'/home/stars/detail', 
    name:'xiangqing',
    query:{
        title:s.title,
        works:s.works
    }
    }
    ">
    {{ s.title }}
    </router-link> 
</li>

Detail.vue中:不变。

params传参,配置props接收参数,页面结果展示:

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

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

相关文章

Spring 项目的创建和使用1(配置国内源)

目录 一、Spring项目的创建 1. 创建Maven项目 2. 添加Spring依赖&#xff08;重要&#xff09; (1) 必须要设置两个配置文件的国内源配置&#xff08;当前项目配置文件&#xff0c;新项目配置文件&#xff09; (2) 复制上一步中的User setting file 后面的路径在文件资源管理…

SpringBoot集成Flowable工作流

SpringBoot集成Flowable工作流 Flowable是什么&#xff1f;一、添加依赖二、flowable配置三、定义流程文件1.使用流程文件定义工作流2.idea使用插件来定义流程图1.安装插件2.创建bpmn文件并画流程图3.右击流程用模型设计器打开文件 四、测试controller Flowable是什么&#xff…

美女与修狗儿【 InsCode Stable Diffusion 美图活动一期】

女朋友最近买了一只小泰迪&#xff0c;于是给她和修狗儿做一幅画 一、Stable Diffusion 模型在线使用地址 https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型版本及相关配置 模型&#xff1a;chilloutmix-Ni.safetensors[7234b76e42采样方法&#xff1a;Euler a…

算法拾遗三十五indexTree和AC自动机

算法拾遗三十五indexTree和AC自动机 indexTree&#xff08;树状数组&#xff09;indexTree规则 IndexTree二维AC自动机 indexTree&#xff08;树状数组&#xff09; 给定数组下标统一从1开始 如果要求L。。R范围上任意区间的和&#xff0c;我们通常的解法是定义一个help&…

msvcp140.dll重新安装的解决方法,msvcp140.dll丢失修复教程

计算提示msvcp140.dll丢失需要怎么重新安装呢&#xff1f;下面小编就把msvcp140.dll丢失重新安装的修复教程分享给大家。msvcp140.dll是Microsoft Visual C Redistributable文件的一部分&#xff0c;它是一个动态链接库文件。该文件包含了一些用于C程序开发的函数和类的定义&am…

【Vue2.0源码学习】模板编译篇-模板解析阶段(HTML解析器)

文章目录 1. 前言2. HTML解析器内部运行流程3. 如何解析不同的内容3.1 解析HTML注释3.2 解析条件注释3.3 解析DOCTYPE3.4 解析开始标签3.5 解析结束标签3.6 解析文本 4. 如何保证AST节点层级关系5. 回归源码5.1 HTML解析器源码5.2 parseEndTag函数源码 6. 总结 1. 前言 上篇文…

如何应对ChatGPT这一波AI浪潮

最近我在写一系列文章&#xff0c;其中包括《ChatGPT 实战系列》和《WPS Office AI实战系列》。想通过这些文章提供实践指导&#xff0c;既自己动手实践了&#xff0c;也能与大家分享我的实践结果&#xff0c;这是一个学习的过程。在实践过程中&#xff0c;我发现有些实用的方面…

基于springboot文学创作的社交论坛新闻文章系统vue

相比于传统的社交论坛管理方式&#xff0c;智能化的管理方式可以大幅提高社交论坛的管理效率&#xff0c;实现了社交论坛管理的标准化、制度化、程序化的管理&#xff0c;有效地防止了社交论坛信息的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准…

OnlyHome三代金属智能手环|健康、科技齐实现

近年来,人们越来越追求生活的品质与趣味,生活中的一点点小确幸、小惊喜最能让人感受到深深地愉悦。这不,Only&Home三代金属智能手环也带来了惊喜,有了它,健康、科技两手抓,享受生活更自由。 Only&Home三代金属智能手环给人的第一印象是它超高的颜值,延用了二代手环奢华…

Proton 推出开源密码管理器,兼身份管理器

导读Proton 是由来自欧洲核研究组织 (CERN) 的科学家于 2014 年在瑞士日内瓦创立的一家公司&#xff0c;其最知名的应该就是电子邮件服务 Proton Mail&#xff0c;主打端到端加密、安全和隐私保护。Proton 由科学家领导&#xff0c;其中包括万维网的发明者 Tim Berners-Lee。 …

高速入门知识02:降低串扰和维持信号完整性的布线方法

文章目录 前言一、单端走线布线1.1.带有短截线的菊花链布线1.2.没有短截线的菊花链布线1.3.星型布线1.4.蛇型布线 二、差分走线布线 前言 串扰是并行走线间不需要的信号耦合。微带线和带状线正确的布线和叠层布局能够降低串扰。 双带线布局有两个靠近的信号层&#xff0c;为降…

MQ的优劣势及RabbitMQ相关概念

一&#xff0c;MQ 1&#xff0c;MQ 的概念 MQ 全称 Message Queue&#xff08;消息队列&#xff09;&#xff0c;是用来存储消息数据的容器&#xff08;是一个中间件&#xff09;&#xff0c;一般用于分布式系统间的通信&#xff1b;MQ主要介于生产者和消费者之间&#xff0c…

lwip-2.1.3自带的httpd网页服务器使用教程(一)从SD卡读取网页文件并显示

概述 本教程使用的单片机是STM32F103ZE&#xff0c;有线网口芯片为ENC28J60。 本教程里面的网页由于需要兼容Windows XP系统的IE8浏览器&#xff0c;所以采用HTML 4.01编写&#xff0c;不使用任何前端框架。笔者使用的网页设计软件是Adobe Dreamweaver CS3。 开发板PCB文件是公…

推荐Selenium 自动化测试实战

你将获得 深入 Selenium 源码、原理、封装、技巧&#xff1b; unittest、pytest、DDT、POM 迭代测试方法&#xff1b; 大型项目分布式测试解决方案&#xff1b; Jenkins 持续集成和交付。 演示地址&#xff1a;www.runruncode.com/portal/article/index/id/19451/cid/85.html 课…

【无线通信专题】NFC基本原理

NFC定义 NFC(Near Field Communication)近场通信。 NFC早期应用 NFC最开始的应用主要用于金融领域,POS机(reader)通过非接触的方式与银行卡(带NFC接口的卡片)进行交互得到银行卡信息并完成支付。因为NFC的通信距离比较近,所以安全性较高。 后来随着手机支付的流行。…

使用STM32实现 蓝牙插座

硬件介绍 蓝牙模块HC-01&#xff0c;其实之前就用过&#xff0c;使用起来非常简单 继电器模块&#xff0c; (VCC 3.3V)当左侧IN输入低电平时&#xff0c;右侧的ON 和 COM会导通&#xff0c;左上的绿灯会亮&#xff0c;此处充当插座的角色 项目需求 通过蓝牙的串口发送open打开…

JMeter 中 3 种参数值的传递

目录 前言&#xff1a; (一) 从 CSV 文件读取要批量输入的变量 (二) 利用 Cookie 进行值的传递 (三) 利用正则匹配提取上一个接口的返回数据作为下个请求的输入 前言&#xff1a; 在JMeter中&#xff0c;参数值的传递是非常重要的&#xff0c;因为它允许你在测试过程中动态…

Spring 如何解决 Bean 的循环依赖(循环引用)

Component public class A {Autowiredprivate B b;}Component public class B {Autowiredprivate A a;}上面的情况就是 循环依赖 Bean的创建初始化过程如下 如果不采取措施&#xff0c;那么循环依赖就会进入死循环 但 Spring 已经帮我们解决了大部分循环依赖问题 具体是如何解…

RabbitMQ的使用详解

一、什么是MQ 1、什么是MQ MQ&#xff08;message queue&#xff09;&#xff0c;本质是个队列&#xff0c;FIFO先入先出。只不过队列中放的是message&#xff0c;是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中&#xff0c;MQ是一种非常常见的上下游…

EMC案例-接地环路对传导骚扰测试的影响

EMC测试案例分析——接地环路对传导骚扰测试的影响 本文主要就接地环路对传导骚扰测试的影响进行简要举例分析&#xff0c;为我们以后的测试方法提供参考。 Part 1 现象描述 某电子设备在进行传导骚扰测试时&#xff0c;在3MHz左右的频率点出现了超限的情况&#xff0c;其测…