返回顶部
首页 > 资讯 > 精选 >Vue中怎么设置全局的cookie对象
  • 853
分享到

Vue中怎么设置全局的cookie对象

2023-07-04 10:07:35 853人浏览 安东尼
摘要

这篇文章主要介绍了Vue中怎么设置全局的cookie对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么设置全局的cookie对象文章都会有所收获,下面我们一起来看看吧。Vue设置全局的cookie对

这篇文章主要介绍了Vue中怎么设置全局的cookie对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么设置全局的cookie对象文章都会有所收获,下面我们一起来看看吧。

Vue设置全局的cookie对象封装方法

在global.js中加入:

var cookie = {    set: function(key, val, time) { //设置cookie方法        var date = new Date(); //获取当前时间        var expiresDays = time; //将date设置为n天以后的时间        date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000); //格式化为cookie识别的时间        document.cookie = key + "=" + val + ";expires=" + date.toGMTString(); //设置cookie    },    get: function(key) { //获取cookie方法                var getCookie = document.cookie.replace(/[ ]/g, "$"); //获取cookie,并且将获得的cookie格式化,去掉空格字符,换成$        getCookie = getCookie.replace(/[;$]/g, ";");        var arrCookie = getCookie.split(";") //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中        var tips; //声明变量tips        // console.info(arrCookie);        for (var i = 0; i < arrCookie.length; i++) { //使用for循环查找cookie中的tips变量            var arr = arrCookie[i].split("="); //将单条cookie用"等号"为标识,将单条cookie保存为arr数组            // console.info("get key=",key,"arr[0]=",arr[0]);            if (key == arr[0]) { //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作                tips = arr[1]; //将cookie的值赋给变量tips                break; //终止for循环遍历            }        }        if (tips) {            tips = tips.replace(/[$]/g, " "); //还原空格字符串        }        // console.info("get key=",key,"value=",tips);        return tips;    },    delete: function(key) { //删除cookie方法        var date = new Date(); //获取当前时间        date.setTime(date.getTime() - 10000); //将date设置为过去的时间        document.cookie = key + "=v; expires =" + date.toGMTString(); //设置cookie    },    setArray: function(key, val, time) {        if (val) {            val = val.join('-*-');        }        // console.info("setArray", this)        this.set(key, val, time);    },    getArray: function(key) {        var arrayStr = document.cookie.replace(/[ ]/g, "$");        arrayStr = arrayStr.replace(/[;$]/g, ";");        // console.info("arrayStr",arrayStr)        var arrCookie = arrayStr.split(";")         var tips; //声明变量数组tips                for (var i = 0; i < arrCookie.length; i++) { //使用for循环查找cookie中的tips变量            var arr = arrCookie[i].split("="); //将单条cookie用"等号"为标识,将单条cookie保存为arr数组            // console.info('arrCookie',key == arr[0],arr[0])            if (key == arr[0]) { //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作                tips = arr[1]; //将cookie的值赋给变量tips                if (tips) {                    tips = tips.replace(/[$]/g, " "); //还原空格字符串                }                tips = tips.split("-*-");                break; //终止for循环遍历            }        }        return tips;    }}export default {    cookie,}

在main.js中加入

import Global from "./utils/global.js";//根据实际路径调整,我这里是utils目录下

使用

data(){    return {        selectedItems = [1,2,3,4]    }}methods:{    addItems(){        this.$Global.cookie.set("status", true);        this.$Global.cookie.setArray('selectedItems', this.selectedItems, 24);    },    show(){        this.$Global.cookie.get("status");        this.$Global.cookie.getArray('selectedItems');    }}

小结:

cookie是document自带的全局对象,是字符串对象。

数组要存在cookie中需要先转为字符串,否则,直接set会直接调用Object.tostring方法,会将“[object]”作为字符串存入

Vue中cookie的使用

cookie的使用说起来非常的简单,不就是传入(设置)cookie,获取cookie值,删除cookie吗,说真的其实真的没有那么难,来咱们先来把设置cookie,获取cookie,删除cookie的方法进行一下封装,说白了就是给他放到一个单独的js内,方便我们去调用,这段代码也可以去网上去找找,都大同小异

//获取cookie、export function getCookie(name) {    var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");    if (arr = document.cookie.match(reg))      return (arr[2]);    else      return null;  }    //设置cookie,增加到vue实例方便全局调用  export function setCookie (c_name, value, expiredays) {    var exdate = new Date();    exdate.setDate(exdate.getDate() + expiredays);    document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());  };    //删除cookie  export function delCookie (name) {    var exp = new Date();    exp.setTime(exp.getTime() - 1);    var cval = getCookie(name);    if (cval != null)     document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();  };

接下来就是调用了,你可以在main.js内进行一下全局掉用,也可以在你使用的组件内来进行调用它,我这里就是在父组件内进行的调用

<script>import Vue from 'vue'import {setCookie, getCookie, delCookie} from './util/util.js';//参数因为是三个方法,所以用大括号来进行调用了,路径一定要写对export default {  name: 'App',  beforeMount () {    Vue.prototype.$cookieStore = {      setCookie,      getCookie,      delCookie    }  }}</script>

开始 的时候要先进行传入cookie值传的方法,看代码

this.$cookieStore.setCookie( 'name' , this.ruleFORM2.name)//‘name'是你自己取得名字,后面的this.ruleForm2.name是我写的一个input内v-model的值

最后在页面里进行使用获取的时候,可能就有很多人就像我一样懵了不知道应该怎么调用了,其实只需要放上一句话就行,看代码

this.$cookieStore.getCookie( 'name')

删除也是一样

this.$cookieStore.delCookie( 'name');

注意的是,那个name名字是不能取不一样的啊,当你传入了你获取和删除也要都用name才行。

遇到的问题  

我曾才main.js内这样引用过,当时也确实成功了,能够正常的传值获取值,但获取cookie值的时候,进入页面获取成功,能够正常打印和使用,但是当你点击刷新页面的时候他的获取功能就是去了作用,返回的值就是undefined,会出现报错,

import {setCookie, getCookie, delCookie} from './util/util.js';Vue.prototype.$cookieStore = {  setCookie,  getCookie,  delCookie}

解决问题

当时感觉应该是生命周期那运行的时候出现了问题,开始的时候,生命周期进行正常的运行,当你在页面进行刷新,生命周期出现断层导致getcookie没办法运行,

 beforeMount () {//以前正常运行的时候是mounted,往上走了一级就行了    Vue.prototype.$cookieStore = {      setCookie,      getCookie,      delCookie    }  }

关于“Vue中怎么设置全局的cookie对象”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue中怎么设置全局的cookie对象”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Vue中怎么设置全局的cookie对象

本文链接: https://lsjlt.com/news/344524.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue中怎么设置全局的cookie对象
    这篇文章主要介绍了Vue中怎么设置全局的cookie对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么设置全局的cookie对象文章都会有所收获,下面我们一起来看看吧。Vue设置全局的cookie对...
    99+
    2023-07-04
  • Vue中如何设置全局的cookie对象
    目录Vue设置全局的cookie对象封装方法Vue中cookie的使用遇到的问题  解决问题Vue设置全局的cookie对象封装方法 在global.js中加入:...
    99+
    2022-11-13
    Vue设置cookie对象 设置全局cookie对象 Vue cookie对象
  • 在vue-test-utils中mock全局对象怎么用
    小编给大家分享一下在vue-test-utils中mock全局对象怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue-t...
    99+
    2024-04-02
  • vue中怎么设置全局变量或数据
    这期内容当中小编将会给大家带来有关vue中怎么设置全局变量或数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实例如下:const MyPlugin ...
    99+
    2024-04-02
  • Node.js中的全局对象是什么
    这篇文章将为大家详细讲解有关Node.js中的全局对象是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。所谓全局对象,就是可以直接访问的对象,比如浏览器中的的全局对象就...
    99+
    2024-04-02
  • nodejs中的全局对象是什么
    本篇内容介绍了“nodejs中的全局对象是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Node.js...
    99+
    2024-04-02
  • vue-cli3怎么设置scss全局变量
    这篇文章主要介绍了vue-cli3怎么设置scss全局变量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue-cli3怎么设置scss全局变量文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • Vue中的全局守卫怎么配置
    这篇文章主要介绍了Vue中的全局守卫怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的全局守卫怎么配置文章都会有所收获,下面我们一起来看看吧。全局守卫在main.js中进行配置:import&nb...
    99+
    2023-07-05
  • nodejs全局变量和全局对象怎么使用
    本篇内容主要讲解“nodejs全局变量和全局对象怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs全局变量和全局对象怎么使用”吧!1、全局对象所有模块都可以调用1)global:...
    99+
    2023-06-21
  • Node.js中怎么实现一个全局对象
    Node.js中怎么实现一个全局对象,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Node.js 全局对象现在介绍 Node....
    99+
    2024-04-02
  • vue全局过滤器怎么设置(教程)
    Vue.js 是一个高效、灵活并且易于学习的前端框架,具有响应式和组件化的特性。Vue.js 还提供了一种很便捷的方式来处理数据,那就是 Vue.js 的过滤器。在 Vue.js 中,过滤器可以用于转换数据。通常我们要将数据进行格式化以满足...
    99+
    2023-05-14
  • node的全局对象是什么
    这篇“node的全局对象是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node的全局...
    99+
    2024-04-02
  • PHP中怎么设置Cookie
    PHP中怎么设置Cookie,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下关于PHP Cooki...
    99+
    2023-06-17
  • Linux中怎么设置全局变量
    这篇“Linux中怎么设置全局变量”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux中怎么设置全局变量”文章吧。Lin...
    99+
    2023-06-27
  • linux中怎么设置全局代理
    在 Linux 系统中,可以通过设置环境变量来实现全局代理。以下是一种常用的方法: 打开终端,并输入以下命令来设置代理服务器地址和...
    99+
    2024-04-02
  • node全局对象指的是什么
    这篇文章主要介绍“node全局对象指的是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node全局对象指的是什么”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • Vue怎么设置、删除和获取cookie
    这篇文章主要介绍了Vue怎么设置、删除和获取cookie的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么设置、删除和获取cookie文章都会有所收获,下面我们一起来看看吧。Vue设置cookie、删除c...
    99+
    2023-07-04
  • Vue中的event对象怎么用
    本文小编为大家详细介绍“Vue中的event对象怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的event对象怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是event对象event...
    99+
    2023-06-29
  • javascript怎么设置全局变量
    小编给大家分享一下javascript怎么设置全局变量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • java怎么设置全局变量
    在Java中,可以使用静态变量来实现全局变量的效果。静态变量在类中被声明为static关键字,它在整个程序运行期间都可以访问而无需实...
    99+
    2023-09-15
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作