当前位置:首页 > VUE

vue实现cookie

2026-01-13 00:00:51VUE

Vue 中实现 Cookie 操作

在 Vue 项目中操作 Cookie 可以通过原生 JavaScript 的 document.cookie 或第三方库(如 js-cookie)实现。以下是两种方法的详细说明:

使用原生 JavaScript 操作 Cookie

原生方式通过 document.cookie 直接读写 Cookie,但需要手动处理字符串格式。

设置 Cookie

document.cookie = 'key=value; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/';
  • expires 设置过期时间(UTC 格式)。
  • path 指定 Cookie 生效路径。

读取 Cookie

const cookies = document.cookie.split(';').reduce((acc, cookie) => {
  const [key, value] = cookie.trim().split('=');
  acc[key] = value;
  return acc;
}, {});
console.log(cookies.key); // 输出指定 Cookie 值

删除 Cookie 通过设置过期时间为过去的时间点实现删除:

document.cookie = 'key=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';

使用 js-cookie 库

js-cookie 提供了更简洁的 API,适合 Vue 项目集成。

安装

npm install js-cookie

引入与使用

import Cookies from 'js-cookie';

// 设置 Cookie
Cookies.set('key', 'value', { expires: 7, path: '/' }); // 过期时间 7 天

// 读取 Cookie
const value = Cookies.get('key');

// 删除 Cookie
Cookies.remove('key', { path: '/' });

在 Vue 组件中的示例

将 Cookie 操作封装为 Vue 的可复用方法:

// utils/cookie.js
import Cookies from 'js-cookie';

export const setCookie = (key, value, options = {}) => {
  Cookies.set(key, value, options);
};

export const getCookie = (key) => {
  return Cookies.get(key);
};

export const removeCookie = (key) => {
  Cookies.remove(key);
};

组件内调用

import { setCookie, getCookie } from '@/utils/cookie';

export default {
  methods: {
    handleLogin() {
      setCookie('auth_token', '12345', { expires: 1 });
    },
    checkAuth() {
      const token = getCookie('auth_token');
      if (!token) this.$router.push('/login');
    }
  }
};

注意事项

  • 安全性:敏感数据(如用户令牌)应设置为 HttpOnlySecure(仅 HTTPS)。
  • 作用域:明确指定 pathdomain 避免跨路径问题。
  • SSR 兼容:若使用 Nuxt.js 等服务端渲染框架,需通过 process.client 判断环境:
    if (process.client) {
      const token = Cookies.get('token');
    }

vue实现cookie

标签: vuecookie
分享给朋友:

相关文章

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…

vue实现a4打印模板

vue实现a4打印模板

使用Vue实现A4打印模板 在Vue中实现A4打印模板需要结合CSS的打印样式和Vue的模板渲染能力。以下是具体实现方法: 设置A4纸张尺寸 在CSS中定义A4纸张的标准尺寸(210mm × 297…

vue实现slider

vue实现slider

Vue 实现 Slider 组件 使用 Vue 实现 Slider 组件可以通过原生开发或借助第三方库。以下是两种常见方法: 原生实现 Slider 创建一个基础的 Slider 组件,通过 v-m…

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> <…

vue实现handsontable

vue实现handsontable

Vue 中实现 Handsontable 要在 Vue 项目中集成 Handsontable,可以使用官方提供的 @handsontable/vue 封装库。以下是一个完整的实现步骤。 安装依赖 确…

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…