最新要闻
- 王冰冰反向操作:戴摩洛哥围巾 希望葡萄牙获胜
- 今日看点:老黄怎么看?这张RTX 4090卖到了10万块 有钱也不一定买到:EVGA绝版货
- 东北市民网购宠物猪收到已冻僵 网友唏嘘:一个敢买一个敢发
- 专为AR/VR打造!苹果全新操作系统名为xrOS:有专属应用商店 最早明年推出
- 全球看点:高校花2.4亿把教学课堂搬到了海上 网友羡慕不已
- 全球观速讯丨《暗黑破坏神4》赛季通行证需氪金购买 暴雪重申:不会充钱就变强
- 20点狂欢:淘宝每满200减30、天猫/京东每满300减40
- 厂家称黄桃罐头没药效 网友调侃:黄桃罐头为何成东北人疯狂膜拜的神物
- 世界速读:首个进入太空的人类 宇航员加加林个人档案已解密:34岁死于空难
- 天天即时看!女生高铁录乐器考试被打断:工作人员知道情况后特意给换了地方
- 世界关注:将近30万人预约!有米粉要当小米13 Pro钉子户
- 每日观察!86寸4K巨屏!小米EA Pro 86电视今日开售 5999元
- 比Zen4还火 AMD游戏神U锐龙7 5800X3D史低2199元(首发3099)
- MIUI 14花宠摆件上线!米粉:小时候的QQ农场又回来了
- 每日快报!刘强东分享抗新冠经验:比感冒还轻微 京东将开通热线帮助员工
- 造车大战中360赢麻了?周鸿祎大赞自己投资的哪吒汽车
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天日报丨Blazor和Vue对比学习(进阶.路由导航四):路由传参
(资料图片仅供参考)
客户端路由传参,主要通过两种方式:(1)路径参数(route),如/student-detial/1,其中/student为路由,1为传递的参数;(2)查询参数(query),如/student-detail?id=1&name=zs&age=18&sex=男。路径参数适合传递简单的值参数,查询参数适合传递复杂的对象参数。Vue中,使用router对象导航时,可以传递路径参数或查询参数,目标页面使用route对象接收参数。Blazor中,使用NavigationManager对象传递参数,目标页面使用[Parameter]和[SupplyParameterFromQuery]标注的属性接收参数。
一、Vue中通过 路径 传递参数(从ParamSource.vue,导航到ParamTarget.vue,传递值参数id)
//路由设置,Router/index.js====================================================================//***注意***:目标路由使用冒号占位符,【/param-target/:id】import { createRouter, createWebHistory } from "vue-router"const routes = [ ...... { path: "/param-source", name: "param-source", component: ()=> import("../views/ParamSource.vue"), }, { path: "/param-target/:id", name: "param-target", component: ()=> import("../views/ParamTarget.vue"), }]const router = createRouter({ history: createWebHistory(), routes})export default router//ParamSource.vue,源页面,设置导航和参数===========================================================<script setup>import { useRouter } from "vue-router";const router = useRouter();//调用router.push方法,参数为一个对象//***注意***:路由必须使用命名路由,如【name:"param-target"】//params属性,传递一个对象参数,对象中的属性id,名称与路由设置中的占位符一致【path: "/param-target/:id"】const ToParamTarget = ()=>{ router.push({ name:"param-target", params: { id: "123" } });}</script>这里是ParamSource页1
//ParamTarget.vue,目标页面,接收参数================================================================<script setup>//引入route对象,用于接收参数//route.params接收路径参数,route.query接收查询参数import { useRoute } from "vue-router";const route = useRoute();</script>Source页传递过来的参数:{{route.params.id}}
二、Vue中通过 查询 传递参数(从Student.vue,导航到StudentDetail.vue详情页,传递值参数Student)
//路由配置,Router/index.js,不需要占位符,和普通路由一样================================================import { createRouter, createWebHistory } from "vue-router"const routes = [ ...... { path: "/student", name: "student", component: ()=> import("../views/Student.vue"), }, { path: "/student-detail", name: "student-detail", component: ()=> import("../views/StudentDetail.vue"), }]......//学生列表页,Student.vue,导航到详情页,并传入当前行的学生信息===========================================<script setup>import { ref } from "vue";import { useRouter } from "vue-router";const router = useRouter();//定义一个students数组对象(测试数据)const students = ref([ {id:1,name:"zs",age:18,sex:"男"}, {id:2,name:"ls",age:19,sex:"男"}, {id:3,name:"ww",age:20,sex:"女"}, {id:4,name:"zl",age:28,sex:"男"}, {id:5,name:"qq",age:35,sex:"女"}]);//使用router.push导航到student-detail,并通过查询参数传递复杂对象(当前行的学生对象)//item参数,由button按钮调用ToStudentDetail方法时传入,是遍历students数组对象的当前行const ToStudentDetail = (item)=>{ router.push({ path:"/student-detail", query:item });}</script>//学生详情页,StudentDetail.vue,接收查询参数===========================================================<script setup>import { useRoute } from "vue-router";const route = useRoute();</script> id:{{item.id}},name:{{item.name}} id:{{route.query.id}}
name:{{route.query.name}}
age:{{route.query.age}}
sex:{{route.query.sex}}
三、Blazor中通过路径传递参数
1、从ParamSource.vue,导航到ParamTarget.vue,传递值参数
//源页面ParamSource.razor,设置导航,传递路径参数=====================================================@page "/param-source"@inject NavigationManager NavigationParamSource
@code { //ToParamTarget方法中,通过Navigation.NavigateTo方法进行导航 //路径参数,直接通过字符串拼接的方式,路由目标页面通过设置自动解析路径,提取参数 private void ToParamTarget(string param) { Navigation.NavigateTo("/param-target/" + param); }}//目标页面ParamTarget.razor,接收参数==============================================================@page "/param-target/{text}"ParamTarget
@Text
@code { //指定[Parameter]标注的属性,接收路径参数,名称匹配,忽略大小写 [Parameter] public string? Text { get; set; }}
2、更加复杂的路径参数应用
//①复杂的路径参数传递============================================================================//导航传参private void ToParamTarget(string param1,string param2){ Navigation.NavigateTo("/param-target/" + param1 + "/page/" + param2);}//接收参数@page "/param-target/{text1}/page/{text2}"@code { [Parameter] public string? Text1 { get; set; } [Parameter] public string? Text2 { get; set; }}//②路径参数可以约束类型========================================================================//目前路径参数只能传递简单的值类型和字符串,以及这些简单参数的数组,如[1,2,3]//而路径参数约束,只支持简单的值类型,包括:float,double,decimal,int,long,guid,bool,datetime@page "/param-target/{Id:int}"@code { [Parameter] public int Id { get; set; }}//③路径参数可以设置默认值======================================================================//如果要在当前组件进行参数变化的跳转,如从【/param-target/1】跳转到【/param-target/2】//则默认值要在OnParametersSet生命周期函数上设置//因为虽然参数变化的跳转,并没有变化路由,还是在本组件内,所以OnInitialized不会调用@page "/param-target/{text?}"@code { [Parameter] public string? Text { get; set; } protected override void OnInitialized() { Text = Text ?? "fantastic"; }}//④使用*号获取所有路径参数=====================================================================//传递多个/路径private void ToParamTarget(){ Navigation.NavigateTo("/param-target/" + "/param1/" + "/param2/" + "/param3");}//接收【/param-target/】之后的所有/路径,使用*号@page "/param-target/{*text}"@code { [Parameter] public string? Text { get; set; }}
四、Blazor中通过查询传递参数
1、从Student.vue,导航到StudentDetail.vue详情页,传递值参数Student
//学生列表页,Student.razor,导航到详情页,并传入当前行的学生信息===========================================@page "/student"@inject NavigationManager NavigationStudent
@foreach (var item in students){
StudentDetail
编号:@Id
姓名:@Name
性别:@XinBie
@code { //属性名和查询键名匹配,查询参数忽略大小写 [Parameter] [SupplyParameterFromQuery] public int Id { get; set; } //属性名和查询键名匹配,查询参数忽略大小写 [Parameter] [SupplyParameterFromQuery] public string? Name { get; set; } //通过特性参数的Name属性和查询键名匹配,查询参数忽略大小写 [Parameter] [SupplyParameterFromQuery(Name = "sex")] public string? XinBie { get; set; }}2、文档中有说明可以通过Navigation.GetUriWithQueryParameter传递查询参数,没看太懂,一直没成功。以下代码不能执行
private void ToStudentDetial(StudentModel item){ Dictionaryquery = new Dictionary (); query.Add("id",item.Id); query.Add("name", item.Name); query.Add("sex", item.Sex); Navigation.NavigateTo(Navigation.GetUriWithQueryParameter("/student-detail",query)); }
-
天天日报丨Blazor和Vue对比学习(进阶.路由导航四):路由传参
客户端路由传参,主要通过两种方式:(1)路径参数(route),如 student-detial 1,其中 student为路...
来源: 天天日报丨Blazor和Vue对比学习(进阶.路由导航四):路由传参
王冰冰反向操作:戴摩洛哥围巾 希望葡萄牙获胜
今日看点:老黄怎么看?这张RTX 4090卖到了10万块 有钱也不一定买到:EVGA绝版货
东北市民网购宠物猪收到已冻僵 网友唏嘘:一个敢买一个敢发
【环球新要闻】从 695. 岛屿的最大面积 入手深度优先搜素DFS
快资讯丨用户重复注册分析-多线程事务中加锁引发的bug
【焦点热闻】PTA作业6-8电信系列总结
环球要闻:C#中的WebAPI
专为AR/VR打造!苹果全新操作系统名为xrOS:有专属应用商店 最早明年推出
全球看点:高校花2.4亿把教学课堂搬到了海上 网友羡慕不已
2022-6.824-Lab2:Raft
007爬虫之requests模块进阶
全球今日讯!攻防世界-unseping(序列化,Bash shell)
全球观速讯丨《暗黑破坏神4》赛季通行证需氪金购买 暴雪重申:不会充钱就变强
JavaScript:this指针
20点狂欢:淘宝每满200减30、天猫/京东每满300减40
厂家称黄桃罐头没药效 网友调侃:黄桃罐头为何成东北人疯狂膜拜的神物
全球看点:验证jenkins自动化部署
世界速读:首个进入太空的人类 宇航员加加林个人档案已解密:34岁死于空难
天天即时看!女生高铁录乐器考试被打断:工作人员知道情况后特意给换了地方
2021冬--简单描述时间复杂度
PDF转图片
Python实战案例,tkinter+random模块,实现课堂随机抽选提问并语音播报学生姓名
世界关注:将近30万人预约!有米粉要当小米13 Pro钉子户
每日观察!86寸4K巨屏!小米EA Pro 86电视今日开售 5999元
比Zen4还火 AMD游戏神U锐龙7 5800X3D史低2199元(首发3099)
MIUI 14花宠摆件上线!米粉:小时候的QQ农场又回来了
每日快报!刘强东分享抗新冠经验:比感冒还轻微 京东将开通热线帮助员工
Windows OpenGL ES 图像透明度
热门看点:我“采访”了 ChatGPT
观察:Blazor和Vue对比学习(进阶.路由导航二):布局(母版/嵌套)
世界简讯:WPF内嵌Http协议的Server端
造车大战中360赢麻了?周鸿祎大赞自己投资的哪吒汽车
天天快看:整活!MIUI 14桌面大变:支持图标自定义调整
当前速读:post表单数据格式完全解析multipart/form-data(C#实现)
队列之王: Disruptor 原理、架构、源码 一文穿透
每日视讯:Python如何导入自定义模块?
环球通讯!进制转换和计算机存储规则
SpringBoot整合Swagger2在线文档
迷惑!大妈凌晨骑车撞上路边停放车辆:怒斥司机不开车灯
黄桃罐头遭疯抢 厂家实诚回应“没药效” 网友调侃:你不懂
环球观焦点:曝Redmi K60系列依然将采用塑料支架 为了性价比?
注意!鲍鱼被列入濒危物种红色名录:20种或灭绝
10.3寸墨水屏!联想YOGA Paper墨水平板今日开售 3699元
天天热点评!环形队列、 条带环形队列 Striped-RingBuffer (史上最全)
梅西进4强 雷军点赞:阿根廷门将神了 太给力
全球微速讯:苹果要大赚!消息称iPhone 15又涨价 高端万元起:华为Mate60等跟涨吗
天天快资讯:深度学习基础课:最大池化层的前向传播推导
阿根廷点球大战淘汰荷兰:梅西点射破门 追平巴蒂纪录网友纷祝贺
国际领先!中国天眼获得银河系气体高清图像:揭露恒星诞生到消亡
世界热讯:巴西点球大战3-5克罗地亚!无缘四强 内马尔赛后痛哭
今日播报!Python装饰器与迭代器的学习教程
全球快资讯:你必须记住的30个CSS选择器?
最轻折叠屏OPPO Find N2来了!朱海舟:上手后你会WOW一下
当前热点-负债585.68亿、工资发不出:国美获黄光裕公司贷款1.5亿港元
天天快讯:NVIDIA力推的光追版《传送门》游戏被指代码糟糕:AMD显卡坑了
零百加速3.8秒马力暴躁 蔚来全系车型试驾会郑州站开启
世界短讯!MAUI新生5.2-样式外观:控件状态样式VisualState
python实现简单的商品数据管理系统
全球动态:asp.net core 基于Cookies的认证,自定义认证方案
全球新消息丨nginx中的正则表达式,location路径匹配规则和优先级
当前观点:后矿难时代 显卡价格仍居高不下
环球通讯!Java校验自定义枚举值
全球观天下!第一百一十一篇:基本引用类型Date
天天快消息!布洛芬不用抢 中国产能全球第一:一家公司就够33亿人用
天天短讯!BLOG-3总结
世界即时:突发!特斯拉中国工厂将停产Model Y
世界速看:一箱油能跑1200公里!比亚迪护卫舰07上市 20.28万起
当前通讯!雷军再谈小米13徕卡影像:非常自豪 你一定会被震撼到
【天天时快讯】我 一个程序员 靠玩ChatGPT年薪210万
世界看点:DX9性能大涨80% Intel驱动打鸡血原因找到了:做法很聪明
关注:南京一外卖小哥逆行撞劳斯莱斯 网友:几十年外卖白送了
今日快看!全球首架C919正式交付 中国搞这款大飞机有多不容易?
AI画作拍出110万高价创纪录!实测百度AI作画 效果惊艳
主人吃螺蛳粉:猫咪被臭到自闭
世界观速讯丨19岁少女无法走路 竟是因为它?国家早已明令禁止!
rsync远程同步
世界观焦点:AMD RX 7900 XTX渲染跑分性能曝光:感觉和RTX 4080两个时代
【热闻】国内电影票房已达285亿 《阿凡达2》成救命稻草:高价被指吃相难看
世界热推荐:为什么日本人更健康长寿?这12个“秘诀”值得借鉴
小米13 Pro长焦表现一绝:10cm至无穷远均可合焦
【报资讯】网传辽宁一有轨电车碾压电动自行车 官方回应:系剐蹭、人无碍
netmiko+textfsm自动统计交换机端口模块型号数量与闲置模块
【全球独家】【网关开发】4.Openresty 使用events插件进行事件通知
世界新消息丨蒟蒻颤抖:AI打信奥赛,三分之二赛题一遍过
【求助帖】从技术转为项目经理后,如何快速进入角色?
angr_ctf——从0学习angr(四):库操作和溢出漏洞利用
【世界速看料】新一代广汽本田皓影官图发布:大嘴变方嘴、可选7座
《原神》获TGA“玩家之声”奖!官方发800原石:全体都有
世界新动态:一部车骑10年!绿源推出INNO9-lite电动自行车:新国标 80km续航
天天快消息!NVIDIA发布527.56显卡驱动程序:DLSS 3游戏性能更强了
天天最资讯丨站起来了!哈弗H6插电混动版11月销量首超4000:直逼问界M5
焦点速递!CSS绝对定位7大应用场景实战案例分享
教你用CSS实现表单部件
环球热议:物联网平台在AIoT领域8大场景应用
东航官宣全球第一架C919商业首飞时间!这7大城市有福了
打爆丰田、本田混动SUV 比亚迪护卫舰07上市:20.28万起
天天微资讯!换代!AMD锐龙9 7950X3D来了:游戏性能比酷睿i9-13900K高出33%
【速看料】全国5G网络接入速率出炉:北京、上海都没抢到第一 移动最快
【世界新要闻】上线7年无敌手!《王者荣耀》11月吸金超13亿元:蝉联销冠