1.0.1 • Published 5 years ago

mp-cookie v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

mp-cookie

使用微信小程序storage模拟cookie库的操作,支持设置设置过期时间,支持获取过期后的cookie。

Usage

初始化npm

参考:npm支持

安装依赖:

npm i mp-cookie --save
# or
yarn add mp-cookie

构建npm

参考:npm支持

使用mp-cookie

// pages/index/index.js
import MpCookie from 'mp-cookie'
// 创建实例
const cookie = new MpCookie();
Page({
  data: {
    userInfo: {},
  },
  onShow() {
    const userInfo = cookie.get('USER_INFO')
    this.setData({
      userInfo,
    })
  }
})

API

配置

options.path

cookie生效路径,默认为空, 即全局生效,如果希望设置为当前页面生效,可以参考如下代码:

const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
const cookie = new MpCookie({ path: currentPage.route })
options.expires

cookie过期时间,默认1天。这里之所以默认配置为短期失效,是为了更贴近原始cookie的特性。如果希望设置永久cookie,最好这里指定一个很大的数字

// 失效日期10年
const cookie = new MpCookie({ expires: 10 * 365 * 24 * 60 * 60 * 1000 })

方法

cookie.get(KEY)

获取键为KEY的cookie。

cookie.set(KEY, VALUE)

种入cookie,键为KEY, 值为VALUE, VALUE可以是任意可JSON.stringify的数据。

cookie.remove(KEY)

移除键为KEY的cookie。

cookie.clear()

清空当前实例的所有cookie。

cookie.getExpired(KEY)

获取已过期的cookie。为方便获取已过期数据,单独提供了这个方法。

实践

通常情况,一个小程序中往往只使用一个cookie实例。建议在公共文件管理cookie,调用方只需引入全局唯一cookie实例。

//cookieManage.js
import MpCookie from 'mp-cookie'
export default new MpCookie({ expires: 10 * 365 * 24 * 60 * 60 * 1000 })

// pages/page/index.js
import cookie from '../cookieManage.js'
Page({
  onShow() {
    const userInfo = cookie.get('USER_INFO')
    this.setData({
      userInfo,  
    })  
  } 
})

TODO

  • []storage存储大小管理
  • []支持长效cookie的简便写法