1.4 使用localStorage持久化数据

76 阅读1分钟

Deno实现了浏览器的绝大多数API,其中就有localStorage,所以我们的数据完全可以存储在这里面。

改造

让我们对user.service.ts改造下:

  1. 去除constructor
  2. 修改getAll
async getAll(): Promise<User[]> {
  const usersStr = localStorage.getItem("users");
  if (usersStr) {
    return JSON.parse(usersStr);
  }
  return this.users;
}

image.png

  1. 修改saveToFile
  private saveToFile(users: User[]) {
    localStorage.setItem("users", JSON.stringify(users));
  }

image.png

重启服务,在页面调用接口看,是不是与原来一模一样?

数据存哪儿了

你可能会有个疑问,localStorage把数据存哪儿了?

在命令窗口,执行一下deno info可以看到: image.png

打开最后一个目录,里面有几个新的文件:

image.png

不过内容是二进制,无法阅读。

作业

思考下,我们这次使用文件或localStorage持久化了数据,但上面的代码有什么问题?还能优化吗?