vue.js - Vuejs如何在不退出该组件的情况下更改组件中的URL
问题描述
我是 VueJs 的新手。
我正在与 wizaplace 合作。实际上,我有一条名为 /breweries/:id 的路线,它采用 wizaplace 公司的 id(API 只需要一个 ID 即可获取公司)来调用 wizaplace API 并获取公司信息。
在这些数据中,我想在 url 中显示一个 slug 而不是 ID。
请问我怎么能做到这一点?
我是否应该做一个“桥接”组件,通过其 id 获取公司的数据并将 id 和 slug 推送到另一个端组件,该组件将再次获得公司的 ID,但在 URL 中显示 $route.params.slug ?
我知道这不是一种正确的工作方式,但这是我创业的需要。
谢谢你的帮助 !
解决方案
如果你想要一些:name_slug
而不是你必须通过这个instad:id
来解决这个地方,所以 API 应该被扩展/改变。或者如果有固定数量的地方,并且你知道所有地方,只需编写一些转换为的函数slug
id
slug
id
function getIdBySlug(slug){
//as Json
const slugsMap = [
{'i' : 1, 's': 'slug1' },
{'i' : 2, 's': 'foo' },
{'i' : 5, 's': 'bar' },
{'i' : 8, 's': 'kek' }
]
const toFind = slugsMap.find(e=> e.s === slug)
return toFind ? toFind.i : false
}
// usage
const ID = getIdBySlug('bar');
推荐阅读
- ubuntu - SATA 磁盘显示在 lsscsi 中,但未显示在 lsblk 中
- ios - LaunchScreen.storyboard 和 Main.storyboard 显示不同(iOS 13 / Swift 5)
- java - 使用 Jackson 解析器获取 isDeleted 等数据名称时,解析问题
- arrays - Julia:函数式编程:根据另一个值数组验证数组条目
- python - 检查电子表格是否存在
- amazon-web-services - How to tell what zone map (blocks) read by amazon redshift query
- java - 如何创建一个新数组并从新数组中的另一个数组复制所有正元素并返回它?
- python-3.x - 是否可以从 Python 中正在进行的子进程打开终端?
- angular - Angular 单元测试在更改时重新运行;插入shell命令?
- c# - 当需要深度克隆单个对象时,我应该担心性能最高的深度克隆算法还是只是手动复制?