《自己写id生成器》

489 阅读1分钟

现在我们的编辑标签页面已经有了编辑,删除标签的功能。

如果我删除了这个标签,那么数据库里这个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了。