Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📝 improve zh-cn docs (install commands) #240

Merged
merged 1 commit into from
Sep 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
291 changes: 146 additions & 145 deletions docs/zh/frameworks/nuxt-3.md
Original file line number Diff line number Diff line change
@@ -1,145 +1,146 @@
# 在 Nuxt 3 中使用

我们提供的专用模块使得在 Nuxt 中持久化 Pinia Store 变得更加容易。

## 安装

1. 使用你喜欢的包管理器安装依赖:

- pnpm:

```sh
pnpm i -D @pinia-plugin-persistedstate/nuxt
```

- npm:

```sh
npm i -D @pinia-plugin-persistedstate/nuxt
```

- yarn:

```sh
yarn add -D @pinia-plugin-persistedstate/nuxt
```

2. 将模块添加到 Nuxt 配置中 (`nuxt.config.ts`):

```ts
export default defineNuxtConfig({
modules: ['@pinia/nuxt', '@pinia-plugin-persistedstate/nuxt'],
})
```

## 用法

创建 Store 时,将 `persist` 选项设置为 `true`。

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: true,
})
```

## 选择 storage

默认情况下,你的 Store 将被保存在 cookie 中(在底层使用 Nuxt 的 [`useCookie`](https://nuxt.com/docs/api/composables/use-cookie))。你可以通过使用自动导入的 `persistedState` 变量下的可用 storage 来配置你想要使用的 storage。

:::info 提示
使用 `persistedState` 所提供的 storage 以外的其他 storage 可能会导致意外。

:::

### `localStorage`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.localStorage,
},
})
```

:::warning 警告
`localStorage` 仅限客户端。
:::

### `sessionStorage`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.sessionStorage,
},
})
```

:::warning 警告
`sessionStorage` 仅限客户端。
:::

### `cookiesWithOptions`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.cookiesWithOptions({
sameSite: 'strict',
}),
},
})
```

:::tip 提示
使用 `cookiesWithOptions()` 允许你[配置 cookies](https://nuxt.com/docs/api/composables/use-cookie#options)。不传递任何选项将默认与使用 `cookies` 相同。

:::

## 全局配置

该模块接受在 `piniaPersistedstate` 下定义在 `nuxt.config.ts` 中的一些选项

```ts
export default defineNuxtConfig({
modules: ['@pinia/nuxt', '@pinia-plugin-persistedstate/nuxt'],
piniaPersistedstate: {
cookieOptions: {
sameSite: 'strict',
},
storage: 'localStorage',
},
})
```

- `storage`:持久化默认使用的 storage (`'localStorage'`, `'sessionStorage'` 或 `'cookies'`)。
- `cookieOptions`:默认 [cookie 选项](https://nuxt.com/docs/api/composables/use-cookie#options)(仅在使用 cookie 持久化时可用)。
- `debug`:详见 [`debug`](/zh/guide/config.html#debug).
# 在 Nuxt 3 中使用

我们提供的专用模块使得在 Nuxt 中持久化 Pinia Store 变得更加容易。

## 安装

1. 使用你喜欢的包管理器安装依赖:

::: code-group

```sh [pnpm]
pnpm i -D @pinia-plugin-persistedstate/nuxt
```

```sh [npm]
npm i -D @pinia-plugin-persistedstate/nuxt
```

```sh [yarn]
yarn add -D @pinia-plugin-persistedstate/nuxt
```

:::

2. 将模块添加到 Nuxt 配置中 (`nuxt.config.ts`):

```ts
export default defineNuxtConfig({
modules: [
'@pinia/nuxt',
'@pinia-plugin-persistedstate/nuxt',
],
})
```

## 用法

创建 Store 时,将 `persist` 选项设置为 `true`。

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: true,
})
```

## 选择 storage

默认情况下,你的 Store 将被保存在 cookie 中(在底层使用 Nuxt 的 [`useCookie`](https://nuxt.com/docs/api/composables/use-cookie))。你可以通过使用自动导入的 `persistedState` 变量下的可用 storage 来配置你想要使用的 storage。

:::info 提示
使用 `persistedState` 所提供的 storage 以外的其他 storage 可能会导致意外。

:::

### `localStorage`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.localStorage,
},
})
```

:::warning 警告
`localStorage` 仅限客户端。
:::

### `sessionStorage`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.sessionStorage,
},
})
```

:::warning 警告
`sessionStorage` 仅限客户端。
:::

### `cookiesWithOptions`

```ts
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
state: () => {
return {
someState: '你好 pinia',
}
},
persist: {
storage: persistedState.cookiesWithOptions({
sameSite: 'strict',
}),
},
})
```

:::tip 提示
使用 `cookiesWithOptions()` 允许你[配置 cookies](https://nuxt.com/docs/api/composables/use-cookie#options)。不传递任何选项将默认与使用 `cookies` 相同。

:::

## 全局配置

该模块接受在 `piniaPersistedstate` 下定义在 `nuxt.config.ts` 中的一些选项

```ts
export default defineNuxtConfig({
modules: ['@pinia/nuxt', '@pinia-plugin-persistedstate/nuxt'],
piniaPersistedstate: {
cookieOptions: {
sameSite: 'strict',
},
storage: 'localStorage',
},
})
```

- `storage`:持久化默认使用的 storage (`'localStorage'`, `'sessionStorage'` 或 `'cookies'`)。
- `cookieOptions`:默认 [cookie 选项](https://nuxt.com/docs/api/composables/use-cookie#options)(仅在使用 cookie 持久化时可用)。
- `debug`:详见 [`debug`](/zh/guide/config.html#debug).
36 changes: 16 additions & 20 deletions docs/zh/guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,21 @@

1. 用你喜欢的包管理器安装依赖:

- pnpm:
::: code-group

```sh
pnpm i pinia-plugin-persistedstate
```
```sh [pnpm]
pnpm i pinia-plugin-persistedstate
```

- npm:
```sh [npm]
npm i pinia-plugin-persistedstate
```

```sh
npm i pinia-plugin-persistedstate
```
```sh [yarn]
yarn add pinia-plugin-persistedstate
```

- yarn:

```sh
yarn add pinia-plugin-persistedstate
```
:::

2. 将插件添加到 pinia 实例上

Expand All @@ -48,9 +46,8 @@ pinia.use(piniaPluginPersistedstate)

创建 Store 时,将 `persist` 选项设置为 `true`。

_使用选项式 Store 语法:_

```ts
::: code-group
```ts [选项式语法]
import { defineStore } from 'pinia'

export const useStore = defineStore('main', {
Expand All @@ -63,9 +60,7 @@ export const useStore = defineStore('main', {
})
```

_或者使用组合式 Store 语法:_

```ts
```ts [组合式语法]
import { defineStore } from 'pinia'

export const useStore = defineStore(
Expand All @@ -76,8 +71,9 @@ export const useStore = defineStore(
},
{
persist: true,
}
},
)
```
:::

现在,你的整个 Store 将使用[默认持久化配置](/zh/guide/config)保存。
Loading