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')
W3 Total Cacheをレスポンシブデザインのテーマで使用する時の注意ポイント!!【WordPress】
Visual Studio CodeでDart Sassのコンパイルができる拡張機能「DartJS Sass Compiler and Sass Watcher」
Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!
gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する
無料版を使っている人は検討する価値あり!MAMP PRO 5で簡単にローカル開発環境を構築・管理する
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
WordPressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」の状態でログインできなくなった場合の対処法
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
Visual Studio CodeでSVGをプレビューする拡張機能「SVG Preview」
JavaScriptで配列内から特定条件の要素を探す方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)