位置: 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代码)

  • 动态网页设计网站上线前,你得准备好“虚拟主机”、“域名”、“备案”三套

    动态网页设计网站上线前,你得准备好“虚拟主机”、“域名”、“备案”三套

  • iwatch怎么换表带(iwatch更换表带教程)

    iwatch怎么换表带(iwatch更换表带教程)

  • 苹果11微信界面变黑色之后怎么恢复(苹果11微信界面怎么变成黑色)

    苹果11微信界面变黑色之后怎么恢复(苹果11微信界面怎么变成黑色)

  • 苹果充电头怎么辨别原装的(苹果充电头怎么拆卸)

    苹果充电头怎么辨别原装的(苹果充电头怎么拆卸)

  • 如何进行发送和接收大文件(发送方式方法)

    如何进行发送和接收大文件(发送方式方法)

  • 输入法只能打出字母不能打汉字的(输入法只能打出来拼音)

    输入法只能打出字母不能打汉字的(输入法只能打出来拼音)

  • qq被对方屏蔽后是什么状态(qq被对方屏蔽后还能加他好友吗)

    qq被对方屏蔽后是什么状态(qq被对方屏蔽后还能加他好友吗)

  • 有耳机孔的手机用typec耳机(有耳机孔的手机能不能用typec耳机)

    有耳机孔的手机用typec耳机(有耳机孔的手机能不能用typec耳机)

  • 滴滴订单怎么删除不了(滴滴订单怎么删除开票记录)

    滴滴订单怎么删除不了(滴滴订单怎么删除开票记录)

  • 华为p20有没有人脸解锁(华为p20有没有人工智能)

    华为p20有没有人脸解锁(华为p20有没有人工智能)

  • 华为平板m6微信手机同时登录(华为平板m6微信视频怎么美颜)

    华为平板m6微信手机同时登录(华为平板m6微信视频怎么美颜)

  • iphone11怎么呼叫siri(苹果11怎么设置呼叫手机号)

    iphone11怎么呼叫siri(苹果11怎么设置呼叫手机号)

  • 抖音上面已关注是什么意思(抖音上面关注推荐怎么删)

    抖音上面已关注是什么意思(抖音上面关注推荐怎么删)

  • 换热器一半热一半凉怎么回事(换热器为什么一半热另一半不热)

    换热器一半热一半凉怎么回事(换热器为什么一半热另一半不热)

  • 华为移动服务在哪设置(华为移动服务在哪打开)

    华为移动服务在哪设置(华为移动服务在哪打开)

  • 手机很久没用充不进电怎么办(手机很久没用充电很慢怎么回事)

    手机很久没用充不进电怎么办(手机很久没用充电很慢怎么回事)

  • 苹果手机密码忘了(苹果手机密码忘记了怎么重置)

    苹果手机密码忘了(苹果手机密码忘记了怎么重置)

  • j1900与j3455性能差距(j1900和j3455)

    j1900与j3455性能差距(j1900和j3455)

  • 怎样去掉爱奇艺广告推送(怎样去掉爱奇艺的水印)

    怎样去掉爱奇艺广告推送(怎样去掉爱奇艺的水印)

  • iphone原装耳机真假鉴别(iphone 原装耳机怎么样)

    iphone原装耳机真假鉴别(iphone 原装耳机怎么样)

  • 苹果xs是不是双卡双待(苹果xs是不是双摄)

    苹果xs是不是双卡双待(苹果xs是不是双摄)

  • 华为手机步数和微信不同步(华为手机步数和微信步数不同步怎么办)

    华为手机步数和微信不同步(华为手机步数和微信步数不同步怎么办)

  • 锤子手机如何恢复出厂设置(锤子手机如何恢复网络设置)

    锤子手机如何恢复出厂设置(锤子手机如何恢复网络设置)

  • Hive官方手册翻译(Getting Started)  实践检验真理  51CTO技术博客(hive.)

    Hive官方手册翻译(Getting Started) 实践检验真理 51CTO技术博客(hive.)

  • 怎么修改金税盘登录密码
  • 城建税要减进项税吗
  • 完全成本法税前利润计算例题
  • 房产税如何交
  • 企业所得税应纳税所得额怎么算
  • 涉税专业服务是做什么的
  • 买原材料怎么记账
  • 工程物资什么时候结转到开发成本里面
  • 发票开票地址是注册地址还是经营地址
  • 出口不退税进项税如何处理
  • 工程项目成本控制的方法
  • 企业所得税预缴计算方法
  • 收回以前年度的应收账款,怎么进行账务处理?
  • 教育协会发的证有用吗
  • 只有利息费用的财务费用如何结转?
  • 以前年度的所得税怎么入账
  • 个人取得的稿酬收入应该如何计算
  • 三免三减半税收优惠政策文件
  • 分公司银行开户需要章程吗
  • 新公司没有实收资本,他的钱从哪来
  • 有合同未收到租金税务如何处理?
  • 航天金税服务费280怎么缴费
  • 营改增后房地产公司税种及税率
  • 进项票转出怎么写分录
  • 利润表所得税费用为负数
  • 佣金回扣如何做账
  • 物业公司的水电工工作职责
  • win10应用显示模糊发虚
  • windows7中
  • ajax不刷新页面
  • 你知道约定的公司有哪些
  • 融资租赁的租金是什么意思
  • 什么叫转登记纳税人
  • 动产租赁增值税税率最新
  • vue图片放在哪里
  • php function函数的用法
  • php常用时间函数
  • 其他应付款用什么冲掉
  • 施工营业额是什么意思
  • 残次品生产成本计算
  • python smote算法
  • 投资收益交增值税税率是多少
  • 合营企业和联营企业的概念
  • 拯救你的方法
  • 小企业购入债券作为长期债券投资,应将相关税费计入
  • 应纳税所得额是利润总额还是净利润
  • 进项票下月到,这个月怎么申报增值税
  • 增值税税收滞纳金比例
  • 通信费属于哪个会计科目
  • 分配股利有几种形式
  • 出口退税包括
  • 2020年专项扣除怎么填
  • 开给个人的普通增值税
  • 私人贴现做账
  • 工程公司本月没发工资
  • 一般要做代理,授权书有什么用
  • 如何考预算师
  • 五证合一办理步骤
  • 营业执照注册资金变更
  • win8激活点不进去
  • win2008 无线网卡
  • linux缓存过大会宕机吗
  • linux awk命令使用实例
  • linux应对攻击的防御手段
  • win7系统禁止更新
  • win7怎么查是不是正版
  • 剑指offter
  • ms-dos7.10如何安装
  • supervisor producer
  • javascript ie
  • 用js自定义函数生成表格
  • javascript ()
  • linux tar -zxf
  • bootstraprow布局
  • jquery实现div左右移动
  • JavaScript SweetAlert插件实现超酷消息警告框
  • js获取设备
  • jquery基本知识
  • 中国税务手机版
  • 税务总局全国增值税发票查验平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设