Skip to content

use 方法

useAppConfig

  • 使用方法
js
const appConfig = useAppConfig();

console.log(appConfig);

useError

  • 使用方法
js
const error = useError();
  • Nuxt 错误具有以下错误
js

interface {
  // HTTP响应状态码
  statusCode: number
  // HTTP响应状态消息
  statusMessage: string
  // 错误消息
  message: string
}

useCookie

useCookie 是一个适用于服务器端渲染(SSR)的组合函数,用于读取和写入 cookie。

使用

bash

const cookie = useCookie(name, options)
bash
useCookie的ref会自动将cookie值序列化和反序列化为JSON。

示例化

下面的示例创建了一个名为 countercookie。如果该 cookie 不存在,它将被初始设置为一个随机值。每当我们更新 counter 变量时,cookie 也会相应地更新。

html
<script setup lang="ts">
  const counter = useCookie("counter");

  counter.value = counter.value || Math.round(Math.random() * 1000);
</script>

<template>
  <div>
    <h1>计数器: {{ counter || '-' }}</h1>
    <button @click="counter = null">重置</button>
    <button @click="counter--">减少</button>
    <button @click="counter++">增加</button>
  </div>
</template>

选项

  • maxAge / expires 使用这些选项来设置 cookie 的过期时间。

  • maxAge:

指定一个 number(以秒为单位)作为 Max-Age Set-Cookie 属性的值。 给定的数字将被四舍五入为整数。默认情况下,不设置最大年龄。

  • expires:

指定一个 Date 对象作为 Expires Set-Cookie 属性的值。 默认情况下,不设置过期时间。大多数客户端将把它视为“非持久 cookie”,并在条件(比如退出 Web 浏览器应用程序)下删除它。

  • httpOnly

指定一个 boolean 值作为 HttpOnly Set-Cookie 属性的值。如果为真,则设置 HttpOnly 属性;否则不设置。默认情况下,不设置 HttpOnly 属性。

  • domain

指定一个值作为 Domain Set-Cookie 属性的值。默认情况下,不设置域,大多数客户端将仅将 cookie 应用于当前域。

  • path

指定一个值作为 Path Set-Cookie 属性的值。默认情况下,路径被认为是"默认路径"。

  • watch

指定一个 boolean 或 string 值,用于监听 cookie 的 ref 数据。

true - 将监听 cookie 的 ref 数据变化以及其嵌套属性(默认)。 shallow - 只监听 cookie 的 ref 数据的顶级属性变化。 false - 不监听 cookie 的 ref 数据变化。

示例一

html
<script setup lang="ts">
  const user = useCookie("userInfo", {
    default: () => ({ score: -1 }),
    watch: false,
  });

  if (user.value && user.value !== null) {
    user.value.score++; // userInfo cookie不会随此更改而更新
  }
</script>

<template>
  <div>用户分数: {{ user?.score }}</div>
</template>

示例二

html
<script setup lang="ts">
  const list = useCookie("list", {
    default: () => [],
    watch: "shallow",
  });

  function add() {
    list.value?.push(Math.round(Math.random() * 1000));
    // list cookie不会随此更改而更新
  }

  function save() {
    if (list.value && list.value !== null) {
      list.value = [...list.value];
      // list cookie随此更改而更新
    }
  }
</script>

<template>
  <div>
    <h1>列表</h1>
    <pre>{{ list }}</pre>
    <button @click="add">添加</button>
    <button @click="save">保存</button>
  </div>
</template>