Skip to content

Latest commit

 

History

History
144 lines (107 loc) · 3 KB

README.md

File metadata and controls

144 lines (107 loc) · 3 KB

cup.js

属于自己用的一个辅助性类库,类似underscore。

API 说明

验证相关

cup.is.objcup.isObject

检查一个变量是否是对象(该检测只针对{}的情况,array非对象)

cup.is.obj({}) //true
cup.is.obj([]) //false

cup.is.arrcup.isArray

检查一个变量是否是数组

cup.is.obj([]) //true
cup.is.obj({}) //false

cup.is.funccup.isFunction

检查一个变量是否是函数

cup.is.obj(function () {}) //true

cup.is.strcup.isString

检查一个变量是否是字符串

cup.is.str('') //true

cup.is.numcup.isNumber

检查一个变量是否是数字

cup.is.num(1) //true

cup.is.ipcup.isIP

检查一个变量是否是合法IP地址

cup.is.ip('192.168.1.1') //true

数据存储

默认使用localStorage实现,如果浏览器不支持localStorage则用cookie

cup.db.set

设置存储区内容,如果内容是对象或者数组会自动序列化成字符串

cup.set('a', {x: 1, y: 2});
cup.set('b', [1, 2, 3]);
cup.set('c', 1);
cup.set('d', 'hello')
cup.db.get

获取存储区里面的内容,如果内容是对象或者数组会自动序列化成对象或者数组

cup.db.get('a') // {x: 1, y: 2}
cup.db.get('b') // [1, 2, 3]
cup.db.get('c') // 1
cup.db.get('d') // 'hello'
cup.db.del

删除存储区内容

cup.db.del('a')
cup.db.get('a') //undefined

模板引擎

采用正则替换生成函数,函数再生成HTML字符串方式,并未加上安全性的措施,请用于可信任的内容生成。

cup.template.parse
cup.template.parse('<h1><% title %></h1>', {title: 'hxy'})
//<h1>hxy</h1>

语法为在<% %>里面放置对象变量名则为直接输出变量内容, 可以在<% %>里面使用var|if|for|else|switch|case|break等js语句会转换成相应地逻辑。

var tmpl = '<h1><% title %></h1>'
          +'<ul>'
          +'<% for(vari=0;i<list.length;i++) {%>'
          +'<li><% list[i].url %></li>'
          +'<% } %>'
          +'</ul>';
var data = {
            title: 'hxy',
            list: [
              {url: 'www.google.com'},
              {url: 'www.facebook.com'},
              {url: 'www.twitter.com'}
            ]}
var html = cup.template.parse(tmpl, data);
/*
<h1>hxy</h1>
<ul>
<li>www.google.com</li>
<li>www.facebook.com</li>
<li>www.twitter.com</li>
</ul>
*/
使用缓存

如果模板比较大,里面的逻辑结构比较多和复杂的话,推荐使用缓存机制,这样效率会大大提升, 如果只是很简单的模板,则不推荐用缓存。

首次模板渲染的时候会将编译好的模板函数放入cup.db中,第二次渲染时则直接在cup.db中获取模板函数执行

cup.template.parse('<h1><% title %></h1>', {title: 'hxy'}, 'pagetitle')