位置: IT常识 - 正文

在vue3+ts项目里使用query和params传参(vue3加ts)

编辑:rootadmin
在vue3+ts项目里使用query和params传参 一 query 传参 (类似get请求)

推荐整理分享在vue3+ts项目里使用query和params传参(vue3加ts),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3 $attrs,vue3 $attrs,vue ts项目,vue3 ts知乎专栏,vue3 ts知乎专栏,vue在项目中怎么用的,vue3 + ts,vue3 ts知乎专栏,内容如对您有帮助,希望把文章链接给更多的朋友!

query 传参方式①

传递方组件

home.vue

<template><div class='c'> <p>query传参</p> <el-button type="success" @click="toList"> to list</el-button></div></template><script lang='ts' setup>import { ref } from 'vue'// 1 引入路由跳转方法useRouterimport { useRouter } from 'vue-router'// 2 拿到实例const router = useRouter()// 3 ref定义基本类型数据const name = ref('梨花白')// 4 query传参const toList = ()=>{ router.push({ //这种对象式传参写法 query除开和path搭配外还可以和name一起使用 path:'/list', //或者这样 path和name任选其一 //name:'List', query:{ name:name.value } })}</script><style scoped>.c{ width: 80%; padding: 20px; margin: 0 auto; border:1px solid red;}.c>p>span{ color:coral;}</style>

看下 router/index.ts 文件

import { createRouter,createWebHistory,RouteRecordRaw } from 'vue-router'const routes:Array<RouteRecordRaw> = [ { path:'/', component:()=>import('../pages/home.vue') },{ path:'/home', name:'Home',//路由命名 component:()=>import('../pages/home.vue') },{ path:'/list', name:'List',//路由命名 为路由跳转作准备 component:()=>import('../pages/list.vue') },{ //定义404页面 path:'/404', component:()=>import('../pages/notfound.vue') },{ //匹配未定义路由 然后重定向至404页面 path:'/:pathMath(.*)', redirect:'/404' }]const router = createRouter({ routes, history:createWebHistory()})export default router

有两个注意点

① ref定义响应式基本类型数据后,修改和赋值要带上 .value

② query是一个对象类型 所以我们定义的基本类型数据不能直接赋值 要给对象式写法 {}

像以下两种写法都是报错的

<script lang='ts' setup>import { ref } from 'vue'// 1 引入路由跳转方法useRouterimport { useRouter } from 'vue-router'// 2 拿到实例const router = useRouter()// 3 ref定义基本数据const name = ref('梨花白')// 4 query传参const toList = ()=>{ router.push({ path:'/list', query:name //报错 不能将类型“Ref<string>”分配给类型“LocationQueryRaw”。 //类型“Ref<string>”中缺少类型“string”的索引签名 })}</script><script lang='ts' setup>import { ref } from 'vue'// 1 引入路由跳转方法useRouterimport { useRouter } from 'vue-router'// 2 拿到实例const router = useRouter()// 3 ref定义基本数据const name = ref('梨花白')// 4 query传参const toList = ()=>{ router.push({ path:'/list', query:name.value //报错 不能将类型“string”分配给类型“LocationQueryRaw” })}</script>

接收方组件

list.vue

<template><div class='c'> <p>query接参</p> <!-- 4 展示数据 --> <p>name: <span>{{ name }}</span></p></div></template><script lang='ts' setup>// 1 引入useRoute路由信息方法import { useRoute } from 'vue-router'// 2 获取实例const route = useRoute()// 3 解构赋值const { query:{name} } = route</script><style scoped>.c{ width: 80%; padding: 20px; margin: 0 auto; border:1px solid red;}.c>P>span{ color:coral;}</style>

效果:

动态效果:

 以上 我们可以得知 当使用query传参时,参数的详细内容都会在地址栏完整的展示出来。

这对于数据安全来说是致命的

当然也有它自有的优势:刷新不会丢失数据

下面看看使用query传参的另一种形式:?传参

query 传参方式②

传递方组件

在vue3+ts项目里使用query和params传参(vue3加ts)

home.vue

<template><div class='c'> <p>query传参</p> <el-button type="success" @click="toList"> to list</el-button></div></template><script lang='ts' setup>import { toRefs,ref,reactive } from 'vue'// 1 引入路由跳转方法useRouterimport { useRouter } from 'vue-router'// 2 拿到实例const router = useRouter()// 3 ref定义基本数据const name = ref('桃花夭')// 4 query ?传参 const toList = ()=>{ router.push('/list?name=' + name.value) //也可以使用ES6里的模板字符串 //router.push(`/list?name=${name.value}`)}</script><style scoped>.c{ width: 80%; padding: 20px; margin: 0 auto; border:1px solid red;}.c>p>span{ color:coral;}</style>

效果:

 动态效果:

两者效果别无二致 也有同学说我在传入引用类型数据时老是报错 怎搞嘞

好的 下面开始传递引用类型数据

传递方组件

home.vue

<template><div class='c'> <p>query传参</p> <el-button type="success" @click="toList"> to list</el-button></div></template><script lang='ts' setup>import { ref,reactive } from 'vue'// 1 引入路由跳转方法useRouterimport { useRouter } from 'vue-router'// 2 拿到实例const router = useRouter()// 3 定义数据接口类型interface props { id:number, content:string}// 4 reactive定义引用类型数据const arr:props[] = reactive([ { id:1, content:'关山难越,谁悲失路之人?' },{ id:2, content:'萍水相逢,尽是他乡之客!' }])// 4 或这样// const arr = reactive([// {// id:1,// content:'关山难越,谁悲失路之人?'// },{// id:2,// content:'萍水相逢,尽是他乡之客!'// }// ] as props[])// 5 query ?传参 const toList = ()=>{ router.push('/list?arr=' + JSON.stringify(arr)) //也可以使用模板字符串 // router.push(`/list?arr=${JSON.stringify(arr)}`)}</script><style scoped>.c{ width: 80%; padding: 20px; margin: 0 auto; border:1px solid red;}.c>p>span{ color:coral;}</style>

接收方组件

list.vue

<template> <div class="c"> <p>query接参</p> <!-- 4 展示数据 --> <p v-for="item in arr" :key="item.id"> <span>{{ item.content }}</span> </p> </div></template><script lang="ts" setup>// 1 引入useRoute方法import { useRoute } from "vue-router";// 2 获取实例const route = useRoute();// 3 使用JSON.parse()方法把传过来的字符串参数转回对象const arr = JSON.parse(route.query.arr as string);</script><style scoped>.c { width: 80%; padding: 20px; margin: 0 auto; border: 1px solid red;}.c > P > span { color: coral;}</style>

效果:

动态效果:

所以是

在使用?传参传入引用类型数据时 传递时要使用JSON.stringify()方法转成字符串类型

在接收时 要使用JSON.parse()方法再转回最初的类型

易错点如下:

 query 传参方式③

其实也就是

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

上一篇:深度学习环境配置(pytorch版本)----超级无敌详细版(有手就行)

下一篇:vuex中this.$store.commit和this.$store.dispatch的用法

  • 华为手机安全检测怎么关闭(华为手机安全检查怎么关闭啊?)

    华为手机安全检测怎么关闭(华为手机安全检查怎么关闭啊?)

  • 钉钉表情包怎么保存到微信(钉钉表情包怎么保存到手机)

    钉钉表情包怎么保存到微信(钉钉表情包怎么保存到手机)

  • emui11是鸿蒙系统吗

    emui11是鸿蒙系统吗

  • 淘宝换货商品属性是指已收到的商品吗(淘宝换货商品属性在哪)

    淘宝换货商品属性是指已收到的商品吗(淘宝换货商品属性在哪)

  • 打印可以打彩色的吗(打印打彩色的多少钱)

    打印可以打彩色的吗(打印打彩色的多少钱)

  • 联通停用2g 老人手机怎么办(联通停用2g要强制升级保底)

    联通停用2g 老人手机怎么办(联通停用2g要强制升级保底)

  • 耳机hifi什么意思(hifi耳机入门知识)

    耳机hifi什么意思(hifi耳机入门知识)

  • 华为nova7悬浮球怎么开(华为nova7悬浮球在哪里找到)

    华为nova7悬浮球怎么开(华为nova7悬浮球在哪里找到)

  • 快手怎么看到别人的关注(快手怎么看到别人给别人点赞)

    快手怎么看到别人的关注(快手怎么看到别人给别人点赞)

  • 虚拟发货什么意思(虚拟发货什么意思咸鱼)

    虚拟发货什么意思(虚拟发货什么意思咸鱼)

  • 苹果删除照片云备份也删除吗(苹果手机云照片删除)

    苹果删除照片云备份也删除吗(苹果手机云照片删除)

  • 手机lens什么意思(手机leioa是什么牌子)

    手机lens什么意思(手机leioa是什么牌子)

  • 有没有什么相机可以把照片变成漫画(有没有什么相机软件带广角功能的)

    有没有什么相机可以把照片变成漫画(有没有什么相机软件带广角功能的)

  • 手机连爱思助手没反应(手机连爱思助手不弹信任)

    手机连爱思助手没反应(手机连爱思助手不弹信任)

  • ios迅雷闪退解决办法(ios迅雷闪退怎么修复)

    ios迅雷闪退解决办法(ios迅雷闪退怎么修复)

  • realme x人像模式怎么打开(realme x 拍照)

    realme x人像模式怎么打开(realme x 拍照)

  • 取消呼叫转移的方法(取消呼叫转移的方法vivo)

    取消呼叫转移的方法(取消呼叫转移的方法vivo)

  • 华为荣耀7x是不是双卡(华为荣耀7x不能接打电话)

    华为荣耀7x是不是双卡(华为荣耀7x不能接打电话)

  • win7分屏快捷键(win7电脑分屏快捷键)

    win7分屏快捷键(win7电脑分屏快捷键)

  • 一加7pro用的什么屏幕(一加7pro用的什么充电协议)

    一加7pro用的什么屏幕(一加7pro用的什么充电协议)

  • qq小船是单向的吗(qq小船是双向的吗)

    qq小船是单向的吗(qq小船是双向的吗)

  • 苹果x手写怎么设置(苹果x手写怎么设置出来)

    苹果x手写怎么设置(苹果x手写怎么设置出来)

  • 为什么移动4g突然变成h了 (为什么移动4g突然变成e了)

    为什么移动4g突然变成h了 (为什么移动4g突然变成e了)

  • 王者荣耀中太乙真人怎么出装?(王者荣耀中太乙真人的技能有哪些?)

    王者荣耀中太乙真人怎么出装?(王者荣耀中太乙真人的技能有哪些?)

  • ES6——class类实现继承(es6的class类如何实现继承)

    ES6——class类实现继承(es6的class类如何实现继承)

  • 个税申报的收入是应发还是实发
  • 收不回来的装修钱怎么办
  • 个人名字的发票专用章
  • 进口环节增值税由海关征收吗
  • 支票存根必须盖银行章吗
  • 换出资产为存货为什么不
  • 公司三年零申报后注销
  • 税控盘服务费减免税会计分录
  • 土地使用权分割转让依据
  • 预付房租的会计科目
  • 所税税汇算补交上一年度税金如何做账务处理?
  • 小企业收到下列票据后,银行存款账户不变的是
  • 高新补贴收入计入什么科目
  • 酒生产车间
  • 股权激励技术入股的最新政策
  • 企业的对公支出是什么
  • 税务登记都需要什么
  • 取得免税农产品进项税转出
  • 小规模纳税人如何计算增值税
  • 携程只有电子发票吗
  • 发票一定要开完了才能领取吗?
  • 进料加工分配率是什么意思
  • 劳务外包收入公式是什么
  • 华为手机如何关闭负一屏
  • 销售额不到10万免征什么税
  • 员工宿舍水电费计入什么会计科目
  • 税前利润的公式有哪些
  • 家具厂打磨工工作图片
  • 会计主管人员应该具备的基本条件
  • 查账征收的个独可以随意分配利润吗
  • 销售免费样品账务处理
  • 固定资产转让税金怎么算
  • 山茶花的养殖方法和注意事项视频
  • 企业养老金有几个档次
  • 企业注销清算流程
  • 继承 土地
  • 公司缴纳残保金怎么做账
  • javaweb知识点汇总
  • css字体加粗怎么弄
  • yolov5 test.py
  • 节流和防抖js
  • 一文搞懂兰州简史
  • linux调试工具有哪些
  • php+vue
  • 手工明细账簿怎么登账
  • 准予扣除业务招标的情形
  • 应付票据是供应商往来吗
  • 帝国cms自动推送插件
  • 已经抵扣的进项税额转出会计分录
  • 哪些收入需要缴纳个人所得税
  • 关于企业停工停产期间的工资支付有关规定
  • access 运行sql
  • 预提费用增加在借方还是贷方
  • 合伙律师事务所管理办法最新
  • MySQL中使用命令行查看二进制文件
  • 关于赠品的财务处理
  • 税控盘减免税款冲减管理费用
  • 劳务派遣公司差额征税怎么做账
  • 出口退税税款账务处理
  • 应收的货款
  • 一家企业至少要运转几个月以上
  • 双击盘符弹出属性
  • 判断自己的脸型
  • mac键盘怎么开
  • 怎么关闭windows登录密码
  • svchoost.exe - svchoost是什么进程 有什么作用
  • linux 更改目录名
  • windowxp怎么取消开机密码
  • unity mrt
  • 详解金球奖之争
  • 树的python
  • 使用jquery实现的项目
  • js读取文件大小
  • 上海个人所得税税率表2023
  • 金税全国客服电话
  • 国家税务总局关于进一步优化营改增纳税服务工作的通知
  • 光伏电站电力监控系统
  • 信托公司抵押房能买吗
  • 即使我单位是免税单位,签订合同时,也需要贴
  • 代理记账公司前期准备流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设