关于Vue Router将query参数传递至props和传递中文字符串的处理

将路由参数传递至props

路径参数params

对于路径参数params/users/:id,仅需在路由中定义props: true

const routes = [
    ...
    { path: '/user/:id', component: User, props: true }
    ...
]

在User组件中接收

const props=defineProps({
  id: String
})

url路径访问/user/123,在User组件中props.id即为123

查询参数query

对于查询参数/user?id=123,需要在路由中手动处理映射

const routes = [
  {
    path: '/user',
    component: User,
    props: route => ({ id: route.query.id })
  }
]

props传入一个函数,在其中描述query与props的映射关系,并且可以进行值类型的处理(query中的值均为字符串,若props需要直接接收Number等类型,可在此处转换或设置默认值)

关于query传递中文字符串

省流:无需特别处理(无需encodeURIComponent
官方文档中的说明

const username = 'eduardo'
// 我们可以手动建立 url,但我们必须自己处理编码
router.push(`/user/${username}`) // -> /user/eduardo
// 同样
router.push({ path: `/user/${username}` }) // -> /user/eduardo
// 如果可能的话,使用 `name` 和 `params` 从自动 URL 编码中获益
router.push({ name: 'user', params: { username } }) // -> /user/eduardo
// `params` 不能与 `path` 一起使用
router.push({ path: '/user', params: { username } }) // -> /user

当使用 push、resolve 和 replace 并在对象中提供 string 地址或 path 属性时,必须进行编码(像以前的版本一样)。另一方面,params、query 和 hash 必须以未编码的版本提供

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇