JavaScriptで簡単にCookie操作ができるライブラリ「js-cookie」

いままでCookieの操作には特に何も考えず昔から使っているjquery-cookieを使用していたのですが、jQueryが必須になるのと、プロジェクトもかなり昔にjs-cookieという別のプロジェクトに移行されているので、そちらを使うようになりました。
「jQuery Cookie」などで検索すると、jquery-cookieが引っかかりますが、jQueryを使う場合もjs-cookieを使用した方がよさそうです。
js-cookieのインストール
ダウンロードして使う場合
GitHubからjs.cookie.jsをダウンロードしてきて、読み込めばOKです。
<script src="/common/js/js.cookie.js"></script>CDNの場合
CDNを使う場合は、jsDelivrが用意されています。
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>npmインストールの場合
npmでインストールしたい場合は下記コマンドでインストールできます。
$npm i js-cookie -Dyarnの場合は下記コマンドです。
$yarn add js-cookieインストールできたらjsファイル内でインポートします。
import Cookies from 'js-cookie';Cookieの操作方法
Cookieの操作方法は主に下記の3つです。
- Cookieの保存
- Cookieの取得
- Cookieの削除
Cookieの保存
Cookieを保存する場合は、Cookies.set()でCookieの名前と値を渡します(Cookiesが複数形で「s」が付いているので注意)。
Cookies.set('name', '値');また、第3引数でオプションを設定できて、期限付きのCookieとして保存したり、特定のパス配下でのみ有効なCookieとして保存できます。
Cookies.set('name', '値', {expires: 1, path: ''});expiresが期限で単位は「日」になります。
1と設定すれば1日になりますし、10と設定すれば10日、1/2と入力すれば12時間となります。
pathはCookieを有効にするページのパスを渡して使います。
ちなみに、path: ''として空文字を渡すと、現在のページでのみ有効なCookieになります。
Cookieの取得
Cookieを取得する場合は、Cookies.get()でCookieの名前を渡せば取得できます。
let getName = Cookies.get('name');Cookieの削除
Cookieを削除する場合は、Cookies.remove()でCookieの名前を渡せば削除できます。
Cookies.remove('name');オブジェクト形式でCookieを保存・取得する方法
2020年11月現在最新のバージョンのv3.0.0ではエラーが出て使えないのですが、v2.2.1であれば使えた方法です。
(今後エラーが修正されて使える可能性もありますが、うまくいかない場合はバージョンをご確認ください)
オブジェクト形式でCookieの保存
オブジェクト形式で保存する場合は、Cookies.set()の値にオブジェクトをセットするだけでOKです。
let data = {
id: 1,
name: 'test',
text: 'sample',
}
Cookies.set('jsonName', data);オブジェクト形式のCookieを取得
オブジェクトを取得するときは、通常の方法だと取得できないので、Cookies.getJSON()を使用します。
let getJsonName = Cookies.getJSON('jsonName')

WordPressのデータを取得できるWP REST APIの使い方
Visual Studio Codeでコメントを色分けして管理する「Better Comments」
コーディング時にちゃんと意識したい複数語の連結方法一覧(キャメルケース・スネークケース・ケバブケース)
Gitで最初に設定しておくユーザー名とメールアドレスのグローバル設定
Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!
「Dart Sass」「LibSass」「Ruby Sass」などSassの種類や記法に関するまとめ
Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法
iTerm2で起動時に左上に表示される「Tip of the Day(今日のTip)」を非表示にする方法
PubSubHubbubを利用してWebサイトの更新をリアルタイムに通知しよう
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する