js-cookie使用 js深度克隆(判断引用类型是数组还是对象的方法)

cookie和深度拷贝的使用

1、js-cookie使用

前端的本地存储分为 localstorage、sesstionstorage、cookie

但是咱们有时候需要做7天免登录的需求时,选择 cookie 作为前端的本地存储是在合适不过的了

复制代码
直接操作 cookie 可以, document.cookie = xxx, 赋值就可以了, 但是我在这给大家介绍一个很小的操作 cookie 的工具  js-cookie

js-cookie 现在主流的框架  vue、react 都可以使用
  1. 安装js-cookie
javascript 复制代码
// yarn
yarn add js-cookie 
// npm
npm i js-cookie
  1. 组件中引入,vue2 用到的地方比较多,也可以挂载在vue实例上 vue.prototype.$xxx = xxx
javascript 复制代码
// 在使用的组件中
import Cookie from "js-cookie"
  1. js-cookie 存取值
javascript 复制代码
// js-cookie 存值
Cookie.set('key', "存进cookie的值")

// js-cookie 取值
Cookie.get('key')

// js-cookie 删值
Cookie.remove("key")

注意:cookie 和 local、sesion 一样,存字符串

  1. js-cookie 设置过期时间
javascript 复制代码
// js-cookie 默认 expires 的值 为 天
Cookie.set('key', 'value', { expires: 7 })  // 表示 7 天过期

// 想要 3个小时过期,可以使用时间戳
const time = new Date( new Date() + 1000 * 60 * 60 * 3 )  // 表示 3 个小时过期(时间戳表示)
Cookie.set('key', 'value', { expires: time })

时间转换关系

  1. 查看 cookie 值 和过期时间

东八区:往前推了 8 个小时,上图显示的时间加上 8 个小时和当前的时间做对比就可以得到 cookie 的过期时间多长

2、js深度克隆

js做一些引用类型的数据的时候需要用到深拷贝

javascript 复制代码
export function deepClone(value) {

    // 非原始值有两种
    //  1、数组的克隆
    if(Object.prototype.toString.call(value) === '[object Array]') {
        let clone = [];
        for(let i=0;i<value.length;i++) {
            clone[i] = deepClone(value[i]);
        }
        return clone
    }

    // 2、对象的克隆
    if(Object.prototype.toString.call(value) === '[object Object]') {
        let clone = {}
        for(let key in value) {
            clone[key] = deepClone(value[key])
        }
        return clone
    }


    return value;  // 返回原始值
}
相关推荐
星河耀银海3 小时前
JAVA 注解(Annotation):从原理到实战应用
java·开发语言·数据库
C+-C资深大佬3 小时前
变量作用域(通俗 + 清晰讲解,适合编程入门)
前端·javascript·vue.js
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第68题】【JVM篇】第28题:对于 JDK 自带的监控和性能分析工具用过哪些?一般你怎么用的?
java·开发语言·jvm·面试
学习,学习,在学习3 小时前
Qt 串口通讯架构
开发语言·c++·qt·架构·qt5
一条泥憨鱼3 小时前
深入理解2026AI最大公约数:Agent
开发语言·人工智能·ai·agent
刻BITTER4 小时前
Alpine.js + Chart.js 踩坑记:一次 Maximum Call Stack Exceeded 排查之旅
开发语言·javascript·ecmascript
郝学胜-神的一滴4 小时前
干货版《算法导论》05:从集合接口到排序
开发语言·数据结构·c++·程序人生·算法·排序
之歆4 小时前
Day15_JavaScript DOM 事件完全指南:从基础到实战(下)
开发语言·javascript·ecmascript
顾凌陵4 小时前
Python 数据可视化实战
开发语言·python·信息可视化
星恒随风4 小时前
从0开始的操作系统(3)
开发语言·笔记·学习