简介
Ember-cookies 是一个轻量级的小型插件,用于在 Ember.js 中快速、简单地读写浏览器 cookie。它提供了一个简单的 API,使得可以在不考虑 cookie 相关复杂细节的情况下,方便地进行 cookie 数据的读写操作。
特性
- 低耦合,不需要修改 Ember.js 程序。
- 十分轻量,gzip 后仅约 2KB。
- 方便快捷,只需在组件或控制器中依赖注入即可使用。
安装
使用 Ember.js 内建的插件管理工具 npm 安装 ember-cookies:
$ npm install ember-cookies --save-dev
安装完成后,即可在项目中使用 ember-cookies。
快速上手
添加依赖
在你需要使用 ember-cookies 的组件或控制器中,引入 ember-cookies 并添加到 dependencies
中,如下所示:
import Cookies from 'ember-cookies/services/cookies'; import { inject as service } from '@ember/service'; export default Component.extend({ cookies: service(), ... });
写入 cookie
在组件或控制器中,使用 set
方法写入一个名为 foo
的 cookie,内容为 bar
:
this.get('cookies').write('foo', 'bar');
读取 cookie
使用 read
方法读取刚刚添加的名为 foo
的 cookie:
const fooValue = this.get('cookies').read('foo'); console.log(fooValue); // 'bar'
删除 cookie
使用 clear
方法移除名为 foo
的 cookie:
this.get('cookies').clear('foo');
API
service/cookies
set(key, value, options)
写入一个 cookie。key
是 cookie 名称,value
是 cookie 的值,options
是可选的配置项。
可用的配置项包括:
domain
:指定 cookie 可访问的域名,默认为页面当前域名。expires
:指定 cookie 的过期时间。可以取一个 datetime 的 String 值或一个 Date 或 moment 对象。path
:指定 cookie 的可用路径,默认为页面根目录。
this.get('cookies').set('foo', 'bar', { domain: 'example.com', expires: new Date('12/31/2020'), path: '/' });
read(key)
读取一个 cookie 的值,如果不存在该 cookie,则返回 null。
const fooValue = this.get('cookies').read('foo');
clear(key, options)
删除一个 cookie。
可选配置项包括:
domain
:指定 cookie 可访问的域名。如果不指定,则使用写入时的默认值。path
:指定 cookie 的可用路径。如果不指定,则使用写入时的默认值。
this.get('cookies').clear('foo', { domain: 'example.com', path: '/' });
exists(key)
检查 cookie 是否存在。
this.get('cookies').exists('foo'); // true 或 false
addon/cookies
若想直接使用整合了 API 的 add-on 可以使用 Ember-cli-cookie
结语
在 Ember.js 应用开发过程中,操作 cookie 是一个常见且比较繁琐的操作。但是,使用 ember-cookies 可以方便地进行 cookie 操作,从而提高开发效率。而且,ember-cookies 的实现也足够轻量,不会造成应用的额外负担。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/ember-cookies