当前位置:首页 > VUE

vue实现cookie

2026-02-10 07:18:30VUE

Vue 中操作 Cookie 的方法

在 Vue 项目中操作 Cookie 可以通过原生 JavaScript 或第三方库实现。以下是几种常见方法:

原生 JavaScript 操作 Cookie

使用 document.cookie API 进行基础操作:

// 设置 Cookie
document.cookie = 'username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/';

// 读取 Cookie
const cookies = document.cookie.split('; ');
const usernameCookie = cookies.find(c => c.startsWith('username='));
const username = usernameCookie ? usernameCookie.split('=')[1] : null;

// 删除 Cookie
document.cookie = 'username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';

使用 js-cookie 库

安装 js-cookie 库(推荐方式):

npm install js-cookie

在 Vue 组件中使用:

import Cookies from 'js-cookie';

// 设置 Cookie
Cookies.set('token', 'abc123', { expires: 7 }); // 7天后过期

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

// 删除 Cookie
Cookies.remove('token');

在 Vuex 中集成 Cookie

结合 Vuex 持久化存储场景:

// store.js
import Vue from 'vue';
import Vuex from 'vuex';
import Cookies from 'js-cookie';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    userToken: Cookies.get('token') || null
  },
  mutations: {
    setToken(state, token) {
      state.userToken = token;
      Cookies.set('token', token, { expires: 7 });
    },
    clearToken(state) {
      state.userToken = null;
      Cookies.remove('token');
    }
  }
});

安全注意事项

设置 HttpOnly 和 Secure 标志增强安全性:

// 原生方式
document.cookie = `sessionId=xyz; Secure; HttpOnly; SameSite=Strict`;

// js-cookie 方式
Cookies.set('sessionId', 'xyz', { 
  secure: true, 
  httpOnly: true, 
  sameSite: 'strict' 
});

响应式 Cookie 处理

创建 Vue 插件实现响应式 Cookie:

// plugins/cookie.js
import Vue from 'vue';
import Cookies from 'js-cookie';

const CookiePlugin = {
  install(Vue) {
    Vue.prototype.$cookie = {
      set(key, value, options) {
        return Cookies.set(key, value, options);
      },
      get(key) {
        return Cookies.get(key);
      },
      remove(key) {
        return Cookies.remove(key);
      }
    };
  }
};

Vue.use(CookiePlugin);

然后在 main.js 中引入即可全局使用 this.$cookie 方法。

vue实现cookie

标签: vuecookie
分享给朋友:

相关文章

vue实现多级表头

vue实现多级表头

Vue 实现多级表头的方法 使用 el-table 组件 Element UI 的 el-table 组件支持多级表头的实现,通过嵌套 el-table-column 即可完成。 <el-ta…

vue前端实现下载进度

vue前端实现下载进度

实现下载进度条的基本思路 在Vue中实现下载进度条,通常需要结合XMLHttpRequest或Fetch API来监听下载进度事件。通过计算已下载数据与总数据的比例,动态更新进度条的显示。 使用X…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…

vue alert实现

vue alert实现

使用 Vue 实现 Alert 组件 在 Vue 中实现 Alert 组件可以通过自定义组件或结合第三方库完成。以下是几种常见方法: 自定义 Alert 组件 创建一个可复用的 Alert 组件,…

vue实现水印

vue实现水印

Vue 实现水印的方法 使用 CSS 背景图 通过 CSS 的 background-image 和 background-repeat 属性实现水印效果。创建一个包含水印文本的 Canvas,将其转…