当前位置:首页 > 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 Router 的路由配置可以天然转化为菜单结构,适合权限与路由绑定的系统: // router/index.js const route…

vue动画实现

vue动画实现

Vue动画实现方法 Vue提供了多种方式实现动画效果,主要通过内置组件和第三方库完成。 使用<transition>组件 Vue内置的<transition>组件可以为元素添…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue实现视频

vue实现视频

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

vue实现快手

vue实现快手

Vue 实现类似快手的功能 Vue.js 是一个渐进式 JavaScript 框架,适合构建复杂的单页应用。要实现类似快手的功能,可以结合 Vue 和相关技术栈进行开发。 核心功能模块 视频流展示…

vue实现uuid

vue实现uuid

使用 uuid 库生成 UUID 在 Vue 项目中,可以使用 uuid 库来生成 UUID。安装依赖: npm install uuid 在 Vue 组件中使用: import { v4 as…