如果我删除了这个标签,那么数据库里这个id就没有了,但是我进来这个页面的路径/labels/edit/衣服 ,是由每个标签的id生成的。如果我删除了,或者把这个标签的id和name改成了新的名字,那么依靠原来的id生成的路径就访问不到这个页面了,就会变成404.
所以我们最好不要修改每个标签的id。
以前的id和name一样,现在我们自己写一个id生成器
新建一个createId.ts文件
let id=0
function createId(){
id+=1
return id
}
export default createId
导出一个函数。每次用户点击新增标签时,调用这个函数生成一个+1的id。
可是这样有一个问题,一旦刷新页面,再次添加时发现id又从1开始了。
所以我们应该把每次加完1的id存到localStorage里。id就从存储库里取,保证刷新页面之后,id也会接着上次的+1。
let id=JSON.parse(localStorage.getItem("_id") || '0')
function createId(){
id+=1
localStorage.setItem("_id",JSON.stringify(id))
return id
}
export default createId
这样之后,编辑标签想修改标签时,就不需要修改id了。