Nextjs client 使用 useRouter push 或者 replace 时,显示一个 loading 状态给用户。可以通过使用 useTransition 来实现。
代码如下:

import { useRouter } from 'next/navigation'
import { useTransition } from 'react'

'use client'

export function MyComponent() {
  const router = useRouter()
  const [isPending, startTransition] = useTransition()

  function navigate() {
    startTransition(() => {
      router.push('/sometwhere')
    })
  }

  return (
    <div>
      <button type="button" onClick={navigate}>Click</button>
      {isPending && <p>Navigating...</p>}
    </div>
  )
}

开发过程中,如果需要连接一个可用的本地 PostgreSQL 数据库,那么通过 Docker Compose 在本地运行 数据库 PostgreSQL 就很有必要了。

肯定是需要安装 Docker 的。

创建一个放置数据库以及数据的目录。
mkdir postgres-docker
cd postgres-docker

创建 docker-compose.yml 文件
在项目目录中,创建一个名为docker-compose.yml的文件并添加以下配置:

services:
  db:
    image: postgres:latest
    container_name: local-postgres
    environment:
      POSTGRES_USER: &lt;postgres_user&gt;
      POSTGRES_PASSWORD: &lt;postgres_password&gt;
      POSTGRES_DB: &lt;postgres_db&gt;
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data 或 /postgres-docker/postgresql/data
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql  # Optional: initialize with SQL script

volumes:
  postgres_data:

请将
<postgres_user> <postgres_password> <postgres_db> 替换为自己真实的配置信息。

/var/lib/postgresql/data 为 Linux 下路径。
/postgres-docker/postgresql/data 为 Windows 下路径, 第一个 / 表示当前盘的根目录

5432:5432 映射允许通过端口 5432 本地访问数据库。

postgres_data:即使在停止容器后也保留 PostgreSQL 数据。
init.sql:可选的 SQL 脚本,在容器启动时自动运行(也可以自定义此文件以进行初始配置)。

使用

docker-compose up -d
即可启动服务了。当然了,通过 docker desktop 也可以管理。

使用命令行

psql -h localhost -p 5432 -U postgres_user -d postgres_db
即可连接数据库了,或者通过 GUI 工具也可以。
意思不需要/不用(干/做)…
用法动词 ない形(去掉ない) + なくてもいいです・なくてもかまいません

例句:
1. 心配しなくてもいいですよ。 心配します -> 心配し(ない)なくてもいいです 不需要担心哦。
2. 明日は授業に 来なくてもいいです。 来ます -> 来(ない)なくてもいいです 明天不用来上课。

意思必须/应该(干/做)…
用法动词 ない形 + なければなりません・なくてはいけません

例句:
1. このケーキを 食べなければなりません。 食べます -> 食べ(ない)なければなりません 必须吃这个蛋糕。
2. コーヒーを 飲まなくてはいけません。 飲みます -> 飲まなくてはいけません 必须喝咖啡。

一类二类三类
iます形aない形ます形ない形ます形ない形
書(か)きます書かない食(た)べます食べないしますしない
飲(の)みます飲まない寝(ね)ます寝ない着(き)ます来(こ)ない
作(つく)ります作らない教(おし)えます教えない  
待(ま)ちます待たない忘(わす)れます忘れない  
呼(よ)びます呼ばない *見(み)ます見ない  
出(だ)します出さない *起(お)きます起きない  
買(か)います買わない *借(か)ります借りない   
 *浴(あ)びます浴びない   
一类:去掉 ます,依据 ます 前最后一个母音发音不同进行不同的变化。い的母音改成あ的母音 + ない 即可。
二类:去掉 ます 加 ない。ます变为 ない。*为特殊单词,虽然看起来是一类但是是二类,需要记忆。
三类:需要特殊记忆,简单来说就是ます -> ない,します 会通过 **します 来出现,也是按照 します 的变化来的,例如:勉強します -> 勉強しない