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

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

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.hqwc.cn/news/19639.html

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

相关文章

Java设计模式之结构型-桥接模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 1、支付方式 2、支付渠道 五、总结 一、基础概念 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;其主要目的是“将抽象部分与实现部分分离&#xff0c;使它们都可以独立地…

【UT学习记录】

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 Part1&#xff1a;Mock Part2&#xff1a;PowerMock Part3:Junit 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文…

Layui动态树详解

Layui动态树详解 一、什么是动态树形&#xff1f;二、Layui动态树形基本使用三、动态加载数据4.案列1.实体类2.dao方法3.子实现类4.jsp页面 前言 在前端开发过程中&#xff0c;树形控件是比较常用的控件之一。而Layui框架中&#xff0c;也提供了基于jQuery的树形控件。除了普通…

ChatGPT带我做四轴飞行器和自平衡小车

按照ChatGPT的说法&#xff0c;这款主板的的主控MCU、无线通信、电源管理、外设接口可以共用&#xff0c;需要差异化的有电机驱动、传感器的选择、控制算法和软件、电源供电。ChatGPT说的共用部分没啥争议&#xff0c;有差异化的地方需要细想下&#xff1a;电机驱动显然应该不同…

关系型数据库中如何进行事务管理

关系型数据库中如何进行事务管理 在关系型数据库中&#xff0c;事务管理是一项非常重要的功能。它允许数据库管理员在一个或多个数据库操作中实现原子性、一致性、隔离性和持久性&#xff08;ACID&#xff09;。 事务是一组数据库操作&#xff0c;它们必须全部执行或全部回滚…

验收户外LED显示屏有哪些标准

验收户外LED显示屏时&#xff0c;可以根据以下标准进行评估&#xff1a; 亮度和对比度&#xff1a;户外LED显示屏需要具有足够的亮度&#xff0c;以应对日间和强烈阳光的照射。检查显示屏在各种光照条件下的亮度表现&#xff0c;并确保对比度良好&#xff0c;以保证画面清晰可见…

数据结构--哈夫曼树

数据结构–哈夫曼树 带权路径长度 结点的 权 \color{red}权 权:有某种现实含义的数值&#xff08;如:表示结点的重要性等) 结点的带权路径长度 \color{red}结点的带权路径长度 结点的带权路径长度:从树的根到该结点的路径长度(经过的边数&#xff09;与该结点上权值的乘积 树的…

作为一个程序员一定要掌握的算法之遗传算法

目录 一、引言 1.1 目的 1.2 意义 二、遗传算法介绍 2.1 遗传算法的基本思想 2.2 遗传算法与其他算法的主要区别 2.3 基于Java的遗传算法设计思想 三、遗传算法的具体实现 3.1 系统功能模块图和说明 3.2 代码和说明 3.2.1 初始化 3.2.2 选择运算 3.2.3 交叉运算 3…

【车载Android】多用户(一) - Linux用户与Android多用户

现如今手机这样的移动设备已经是人手一台了&#xff0c;但是汽车依然是以家庭为单位使用&#xff0c;不同的家庭成员对于汽车的使用存在着差异&#xff0c;比如空间、功能、影音风格等。因此&#xff0c;“智能汽车”需要具备千人千面的特性&#xff0c;能够适应不同的用户和场…

Linux系统编程(信号处理机制)

文章目录 前言一、中断&#xff0c;异常&#xff0c;信号的区别二、信号在Linux中的标识三、信号处理相关函数四、代码实验总结 前言 本篇文章我们来讲解信号的处理机制&#xff0c;信号处理在Linux操作系统中必不可少&#xff0c;这一点值得大家注意&#xff0c;信号又会与中…

mfc120u.dll丢失修复,mfc120u.dll缺失的解决方法

MFC120u.dll缺失的原因 当系统中缺少或损坏了MFC120u.dll文件时&#xff0c;就会出现"MFC120u.dll缺失"的错误提示。造成MFC120u.dll缺失的原因可能有以下几种情况&#xff1a; 1.文件删除或损坏&#xff1a;MFC120u.dll文件可能因为误删除、病毒感染、硬盘故障等原…

信创电子档案管理单机版系统之档案利用的功能介绍

专久智能信创电子档案管理单机版系统的档案利用&#xff0c;包括对电子档案的网上利用和对档案实体的借阅两种方式&#xff0c;用户对档案的利用都是通过 WEB 方式的档案网站实现的。 用户可以根据系统赋予的权限对电子档案目录进行检索查询&#xff0c;找到所需的档案目录&…