位置: IT常识 - 正文

Vue页面路由参数的传递和获取(vue 路由)

编辑:rootadmin
Vue页面路由参数的传递和获取 文章目录1. 通过动态路由参数传递2. 通过query字符串传递3. props 隐式传递

推荐整理分享Vue页面路由参数的传递和获取(vue 路由),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue页面路由传参,vue路由用法,vue页面路由配置和使用,vue页面路由配置和使用,vue路由两种方式,vue路由用法,vue路由设置参数,vue 页面路由,内容如对您有帮助,希望把文章链接给更多的朋友!

vue 页面路由切换时传参的方式有如下几种:

动态路由参数

它隐藏字段信息,相对于来说较安全,同时地址栏中的地址也相对较短

它必须是先定义后使用,一般用于根据固定参数,返回对应的数据所用

query字符串 ?id=1

通过search字符串的方式来在地址栏中传递数据,相对于来说地址栏会暴露字段信息安全性较低,一般用于搜索相关,它可以不定义就可以直接用

props 隐式传递

隐式传递,它一般用于敏感数据的传递,可以不用

cookie/storage来完成对于页面传参

1. 通过动态路由参数传递

描述:

当我们确定了某一个页面需要根据唯一标识来获取详情的时候,我们一般使用动态路由传递参数。

要注意,通过这种方式传递数据,动态路由必须先定义后使用,并且获取数据时需要唯一标识。

使用:

Vue页面路由参数的传递和获取(vue 路由)

news.js(这个文件是从 index.js 文件中抽取拆分出来的,最终要被引入到 insex.js 文件中):

import News from '@/views/News'import Detail from '@/views/Detail'const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, },]export default routes

index.js:

import Vue from 'vue'import VueRouter from 'vue-router'import news from './routes/news'// 以插件的方式添加Vue.use(VueRouter)// 实例化路由对象及配置路由表const routes = [...news]const router = new VueRouter({ // 路由模式 mode: 'history', // 路由规则表 routes})export default router

new.json(虚拟新闻 mooc 数据):

[ { "id": 1000, "title": "新闻1" }, { "id": 2000, "title": "新闻2" }, { "id": 3000, "title": "新闻3" }]

new.vue(新闻页):

<template> <div> <ul> <template v-if="news == null"> <li>加载中...</li> </template> <template v-else> <li @click="godetail(item.id)" v-for="item in news" :key="item.id">{{ item.title }}</li> </template> </ul> </div></template><script>import { get } from '@/utils/http'export default { data() { return { news: null } }, async created() { let ret = await get('/mock/news.json') this.news = ret }, methods: { godetail(id) { this.$router.push(`/news/${id}`) } }}</script><style lang="scss" scoped></style>

detail.vue(新闻详情页):

<template> <div> </div></template><script>export default { mounted() { // 获取动态路由参数数据 console.log(this.$route.params) }}</script><style lang="scss" scoped></style>

2. 通过query字符串传递

new.vue(新闻页):

<template> <div> <ul> <template v-if="news == null"> <li>加载中...</li> </template> <template v-else> <li @click="godetail(item.id)" v-for="item in news" :key="item.id">{{ item.title }}</li> </template> </ul> </div></template><script>import { get } from '@/utils/http'export default { data() { return { news: null } }, async created() { let ret = await get('/mock/news.json') this.news = ret }, methods: { godetail(id) { this.$router.push(`/news/${id}?kw=abc`) } }}</script><style lang="scss" scoped></style>

detail.vue(新闻详情页):

<template> <div> </div></template><script>export default { mounted() { // 获取query字符串 console.log(this.$route.query) }}</script><style lang="scss" scoped></style>

3. props 隐式传递

news.js:

import News from '@/views/News'import Detail from '@/views/Detail'const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, // 写法1:回调函数写法,可以书写业务逻辑 // router它就是一个路由对象 props: router => { let title = router.params.id == '1000' ? '爆炸新闻' : '一般新闻' return { state: 2000, title } }, // 写法2:这是一种没什么用的写法,没有业务逻辑 // props: { title: '1', state: 2 } }]export default routes

new.vue(新闻页):

<template> <div> <ul> <template v-if="news == null"> <li>加载中...</li> </template> <template v-else> <li @click="godetail(item.id)" v-for="item in news" :key="item.id">{{ item.title }}</li> </template> </ul> </div></template><script>import { get } from '@/utils/http'export default { data() { return { news: null } }, async created() { let ret = await get('/mock/news.json') this.news = ret }, methods: { godetail(id) { this.$router.push(`/news/${id}?kw=abc`) } }}</script><style lang="scss" scoped></style>

detail.vue(新闻详情页):

<template> <div> <h3>props: {{ state }} -- {{ title }}</h3> </div></template><script>export default { props: ['state','title'],}</script><style lang="scss" scoped></style>

这种传递方式,可以敏感字段从地址栏中隐藏,不会暴露数据,而且回调函数的写法可以书写业务逻辑。

这种方式可以做数据埋点(也叫用户指纹),即隐蔽地收集用户数据。用户每次跳转页面都会触发 props 隐式传递,从而做到用户数据的收集。收集到数据后,通过python、大数据等技术,为用户建模,生成人物画像,由此可以进行大数据推荐。

除了上面两种写法以外,还有第三种写法

news.js:

import News from '@/views/News'import Detail from '@/views/Detail'const routes = [ { path: '/news', component: News, }, { // 通过动态路由参数来完成页面数据的传递 path: '/news/:id', component: Detail, // 写法3:布尔类型 // 布尔类型,一但使用,params动态路由参数传的数据,可以通过props来获取 // 设置为布尔类型,可以简化,动态路由参数的数据获取 props: true, }]export default routes

detail.vue(新闻详情页):

<template> <div> <!-- 直接通过 props 获取动态路由参数 --> <h3>props: {{ $route.params }} -- {{ id }}</h3> </div></template><script>export default { props: ["id"],};</script><style lang="scss" scoped></style>

本文链接地址:https://www.jiuchutong.com/zhishi/300093.html 转载请保留说明!

上一篇:【AI大比拼】文心一言 VS ChatGPT-4

下一篇:Python CNN卷积神经网络实例讲解,CNN实战,CNN代码实例,超实用(cnn卷积神经网络python代码)

  • 华为npc有什么用(华为上的npc是什么)

    华为npc有什么用(华为上的npc是什么)

  • 苹果屏幕页数怎么删除(苹果屏幕页数怎么设置)

    苹果屏幕页数怎么删除(苹果屏幕页数怎么设置)

  • 腾讯为什么换标志了(腾讯更换品牌标识达到了其提升)

    腾讯为什么换标志了(腾讯更换品牌标识达到了其提升)

  • 小天才电话手表有什么隐藏功能(小天才电话手表隐藏功能)

    小天才电话手表有什么隐藏功能(小天才电话手表隐藏功能)

  • 音频比特率什么意思(音频比特率是不是越高越好)

    音频比特率什么意思(音频比特率是不是越高越好)

  • 苹果手机同用一个id可以看对方什么(苹果手机同用一个id可以看对方的微信吗)

    苹果手机同用一个id可以看对方什么(苹果手机同用一个id可以看对方的微信吗)

  • 支付宝登录不了(支付宝登录不了淘宝怎么回事)

    支付宝登录不了(支付宝登录不了淘宝怎么回事)

  • 短信拉黑对方后 对方发信息是什么状态(短信拉黑对方后还能收到吗)

    短信拉黑对方后 对方发信息是什么状态(短信拉黑对方后还能收到吗)

  • 苹果手机官网在哪里找(苹果手机官网入口)

    苹果手机官网在哪里找(苹果手机官网入口)

  • 微信注销手机号可以解绑吗(微信注销手机号多久能绑其他微信)

    微信注销手机号可以解绑吗(微信注销手机号多久能绑其他微信)

  • 路由器隐藏了怎么连接(路由器隐藏了怎么恢复手机)

    路由器隐藏了怎么连接(路由器隐藏了怎么恢复手机)

  • 手机微信如何建群聊(手机微信如何建群)

    手机微信如何建群聊(手机微信如何建群)

  • 手机关不了机怎么办(手机关不了机怎么办OPPO)

    手机关不了机怎么办(手机关不了机怎么办OPPO)

  • 拼多多个人会员名是啥(拼多多平台会员)

    拼多多个人会员名是啥(拼多多平台会员)

  • 苹果无线耳机怎么控制音量(苹果无线耳机怎么配对安卓手机)

    苹果无线耳机怎么控制音量(苹果无线耳机怎么配对安卓手机)

  • 华为nova5pro耳机插口在哪(华为nova5pro耳机插上没有反应)

    华为nova5pro耳机插口在哪(华为nova5pro耳机插上没有反应)

  • r6611录音笔使用教程(录音笔r6611怎么用)

    r6611录音笔使用教程(录音笔r6611怎么用)

  • 绘声绘影如何添加歌词(绘声绘影添加音乐)

    绘声绘影如何添加歌词(绘声绘影添加音乐)

  • 虚假发货有哪些处罚(虚假发货有哪些处罚A冻结帐号30天)

    虚假发货有哪些处罚(虚假发货有哪些处罚A冻结帐号30天)

  • 工资理财怎么取出来(工资理财的钱怎么转出来)

    工资理财怎么取出来(工资理财的钱怎么转出来)

  • 快手小黄车下单怎么查单号(快手小黄车下单怎么看订单)

    快手小黄车下单怎么查单号(快手小黄车下单怎么看订单)

  • emui是什么(emui是什么牌子手机)

    emui是什么(emui是什么牌子手机)

  • kentbcli.exe是什么进程 有什么用   kentbcli进程查询(kprcycleaner.exe是什么)

    kentbcli.exe是什么进程 有什么用 kentbcli进程查询(kprcycleaner.exe是什么)

  • React 上下文(react 上下文hooks内容存储到本地)

    React 上下文(react 上下文hooks内容存储到本地)

  • 房产税的房产原值是什么
  • 土地使用税怎么征收标准
  • 企业的书报费应计入销售费用
  • 已开普通发票记账联丢失怎么办?
  • 有进项发票没有销项发票
  • 住房公积金发票
  • 企业所得税为什么那么高
  • 处置子公司全部股权会计处理 企业会计准则
  • 跨月应该如何开具红字发票?
  • 股东多交投资款处理
  • 把公司的设备弄坏了怎么办
  • 可供出售交易性金融资产申报表怎么填
  • 稳定性流动资产是经营性流动资产吗
  • 购买货物运费怎么做分录
  • 小企业准则适用范围
  • 办理完税务手续是否还需要报税?
  • 国税退税需要多长时间
  • 意外保险计入职工薪酬
  • 企业多扣个税怎么处理
  • 文化事业建设税征税范围
  • 活动策划费可以开专票吗
  • 海关进口增值税可以抵扣吗
  • 工程预缴增值税2019最新规定
  • 企业微信收入也要交税吗
  • 其他应收款注销数额太大
  • 没有营业执照哪个银行可以办理房产抵押贷款
  • PHP:mb_ereg_search()的用法_mbstring函数
  • win10预览版21337
  • phpforeach遍历二维数组
  • php怎么读取txt
  • thinkphp5自定义标签
  • 辞退员工补偿标准是n+1还是2n
  • express框架使用
  • 一般纳税企业增值税计算
  • 材料短缺计入
  • 筹建期间的开办费为什么不属于资产
  • 专票抵扣联可以盖两个章吗
  • react中key
  • 【Netty系列・高级篇】Netty核心源码解析
  • 电费发票查不到
  • 没有实收资本的股权原值
  • 织梦技巧
  • pythonzen
  • sql server 2005数据库备份
  • 培训费 会议费
  • 企业做账的流程图
  • 银行承兑汇票背书转让会计分录
  • 安防工程注意事项有哪些
  • 实收资本如何进行核算
  • 盈余公积分配现金股利会影响留存收益吗
  • 发票跨年红冲 交税
  • 垫付的资金
  • 租赁合同的印花税的计税依据
  • 工程设计费收入在所得税申报表应填入
  • 现代服务业包括哪些项目
  • 资产负债表期初余额和期末余额
  • mysql实现合并同一ID对应多条数据的方法
  • ubuntu zen3
  • WINDOWS操作系统属于什么操作系统
  • ubuntu命令行浏览网页
  • win7如何升级到win10有什么要求
  • 升级win10系统错误代码0x80072F8F
  • win10文件资源
  • opengl光照设置
  • easyui下拉列表
  • unity3d 帧同步
  • JavaScript中创建文件
  • css网页布局方式
  • 中文路径和英文路径
  • [置顶]马粥街残酷史
  • unity learn premium
  • react和nodejs
  • 在Unity中使用事件/委托机制(event/delegate)进行GameObject之
  • node 回调函数
  • 怎么关闭android
  • 键盘事件有三个 分别是
  • 上海电子税务局怎么添加办税员
  • 南京税务局是地市级还是副省级
  • 四川省一般纳税人资格证明
  • 酒席发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设