当前位置:首页 > 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:

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 方法。

标签: vuecookie
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue 实现图钉

vue 实现图钉

实现图钉效果的步骤 在Vue中实现图钉(固定位置)效果,可以通过CSS的position: sticky属性或监听滚动事件动态修改元素样式。以下是两种常见方法: 方法一:使用CSS的posi…

vue 实现协同

vue 实现协同

Vue 实现协同编辑的方案 协同编辑指多个用户同时编辑同一文档并实时同步更改。Vue 结合相关库和技术可轻松实现该功能。 使用 WebSocket 实现实时通信 WebSocket 提供全双工通信,…