位置: 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的用法

  • 电脑怎么设置屏保时间(电脑怎么设置屏幕休眠)

    电脑怎么设置屏保时间(电脑怎么设置屏幕休眠)

  • 网易云操作失败账号存在异常是怎么回事(网易云操作失败账号存在异常是什么问题2022)

    网易云操作失败账号存在异常是怎么回事(网易云操作失败账号存在异常是什么问题2022)

  • roaming文件夹可以删除吗(电脑的roaming文件夹可以清理吗)

    roaming文件夹可以删除吗(电脑的roaming文件夹可以清理吗)

  • 快手没实名认证会影响作品吗(快手没实名认证能查到那人吗)

    快手没实名认证会影响作品吗(快手没实名认证能查到那人吗)

  • 微信发送语音界面不一样(微信发送语音界面怎么设置)

    微信发送语音界面不一样(微信发送语音界面怎么设置)

  • 苹果和苹果发信息免费的吗(苹果和苹果发信息是绿色的)

    苹果和苹果发信息免费的吗(苹果和苹果发信息是绿色的)

  • 淘宝直播为什么给编号(淘宝直播为什么不能上架商品)

    淘宝直播为什么给编号(淘宝直播为什么不能上架商品)

  • 腾讯会议能录播吗(腾讯会议录播怎么操作)

    腾讯会议能录播吗(腾讯会议录播怎么操作)

  • WPS表格保存不兼容怎么办(wps表格保存不兼容的原因)

    WPS表格保存不兼容怎么办(wps表格保存不兼容的原因)

  • 双十一退货退款定金退吗(双十一退货退款红包退回吗)

    双十一退货退款定金退吗(双十一退货退款红包退回吗)

  • 新买的手机卡被别人注册了怎么办(新买的手机卡被别人绑定了银行卡)

    新买的手机卡被别人注册了怎么办(新买的手机卡被别人绑定了银行卡)

  • 苹果换过电池有影响吗(苹果换过电池有显示吗)

    苹果换过电池有影响吗(苹果换过电池有显示吗)

  • ps怎么处理raw文件(ps怎么处理raw格式)

    ps怎么处理raw文件(ps怎么处理raw格式)

  • 苹果11键盘声音怎么设置(苹果11键盘声音怎么设置大小)

    苹果11键盘声音怎么设置(苹果11键盘声音怎么设置大小)

  • 微信转账延时到账怎么设置(微信转账延时到账是什么意思?)

    微信转账延时到账怎么设置(微信转账延时到账是什么意思?)

  • 抖音被拉黑是什么情况(抖音被拉黑是什么样状态)

    抖音被拉黑是什么情况(抖音被拉黑是什么样状态)

  • 抖音视频怎么设置私密相册(抖音视频怎么设置自动播放下一个)

    抖音视频怎么设置私密相册(抖音视频怎么设置自动播放下一个)

  • 恢复最近删除照片(从最近删除里恢复的照片回到哪里?)

    恢复最近删除照片(从最近删除里恢复的照片回到哪里?)

  • oppoa5强制恢复出厂(oppoa5强制恢复出厂设置后还要密码)

    oppoa5强制恢复出厂(oppoa5强制恢复出厂设置后还要密码)

  • vivoz3新机返回键在哪(vivoz3i手机怎么设置返回键在屏幕上)

    vivoz3新机返回键在哪(vivoz3i手机怎么设置返回键在屏幕上)

  • 人工智能的例子(中国古代人工智能的例子)

    人工智能的例子(中国古代人工智能的例子)

  • 狮子岩,斯里兰卡中央省 (© Jeremy Woodhouse/Getty Images)(狮子岩斯里兰卡)

    狮子岩,斯里兰卡中央省 (© Jeremy Woodhouse/Getty Images)(狮子岩斯里兰卡)

  • 企业所得税的计算公式
  • 信用减值损失与坏账准备关系
  • 月末一般无余额的有
  • 通用机打发票怎么红冲
  • 税务局代开的进项票需要认证吗
  • 贸易类公司做产品代理账务如何处理
  • 贸易公司发票怎么平衡
  • 向投资者借款做在什么科目
  • 佣金支出和手续费税前扣除相关政策依据及会计处理
  • 超市送现金券怎么做账
  • 认缴制下实收资本印花税
  • 没有订立合同的著作权属于什么人
  • 小规模季度不超过45万的税收优惠
  • 城市维护建设税的计税依据是什么
  • 样品寄送时运费支付的对策
  • php的!
  • win11多开
  • php常用的设计模式在开发中的实例
  • 转销坏账准备会影响账面余额吗
  • 增值税专票跨月但未认证,怎么作废
  • lsass.exe是什么进程
  • 微博怎么变成大v
  • 无形资产的摊销年限不得低于多少年
  • 跨站脚本攻击是什么
  • react框架和vue哪个用的人多
  • 本期收入及免税收入怎么填
  • 基于卷积神经网络的网络入侵检测算法设计与实现
  • 新手入门指南
  • ssh非交互式登录
  • 帝国cms手机端点击加载不动怎么弄
  • day29--Java泛型02
  • 农民专业合作社是什么性质
  • 残疾人就业保障金申报时间
  • 融资租赁视同销售吗
  • phpcms官网打不开
  • 专项应付款 会计分录
  • 事业单位体检费标准是多少
  • 经营性收入包括成本吗
  • MSSQL output使用
  • 税法中减除和减退的区别
  • 纳税人缴纳的税款叫做什么
  • 计算业务招待费扣除限额的基础包括营业外收入
  • 固定资产费用化有什么影响
  • 为什么收到要发1
  • 个人的车由公司来投保可以吗
  • 申报抵扣
  • 企业支付宝扣费
  • 无形资产如何摊销公式
  • 首次购买金税盘及服务费的账务处理
  • 预付一年房租收到专票账务处理
  • 律师的行业
  • 汽油费进项税额能抵扣吗
  • java连接sqlserver数据库对象名无效
  • mysql 绿色版
  • asp.net select
  • 通过扣缴义务人申报和综合所得年度自行申报
  • Windows Server 2008中审核和符合性
  • win10怎么取消u盘密码保护
  • ubuntu中安装vim
  • 注册表重新注册命令
  • Linux查看文件内容编码
  • window7窗口
  • windows10周年更新
  • JQuery 又谈ajax局部刷新
  • js内存泄漏的原因及解决办法
  • windows批量添加文件后缀
  • 命令行net
  • 安卓手机管家是什么
  • js中的?
  • python爬虫从入门到精通
  • jQuery 3.0 的 setter和getter 模式详解
  • python讲解
  • 上海市个人所得税计算
  • 请问一般纳税人的业务协调税率是多少
  • 扬州税务学院住宿环境
  • 网上税务局网址
  • 纳税人欠缴税款怎么办
  • 国家税务局的单位性质是什么
  • 广东省广州市国家税务局
  • 增值税与个人的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设