PX单位的wxs实现

var REGEXP = getRegExp('^-?\d+(\.\d+)?$'); function addUnit(value) { if (value == null) { return undefined; } return REGEXP.test('' + value) ? value + 'px' : value; } module.exports = addUnit;

May 18, 2021 · 1 分钟 · Me

BEM规范生成工具类wxs实现

array.wxs function isArray(array) { return array && array.constructor === 'Array'; } module.exports.isArray = isArray; object.wxs 对象keys数组化 var REGEXP = getRegExp('{|}|"', 'g'); function keys(obj) { return JSON.stringify(obj) .replace(REGEXP, '') .split(',') .map(function(item) { return item.split(':')[0]; }); } module.exports.keys = keys; var array = require('./array.wxs'); var object = require('./object.wxs'); var PREFIX = 'van-'; function join(name, mods) { name = PREFIX + name; mods = mods.map(function(mod) { return name + '--' + mod; }); mods....

May 18, 2021 · 1 分钟 · Me

记忆函数memoize的wxs实现

Introduce 微信小程序wxs语法当前并不支持fn.apply方式接受数组形式的参数,当前的基础记忆函数memoize的实现仅支持2 args。 function isPrimitive(value) { var type = typeof value; return ( type === 'boolean' || type === 'number' || type === 'string' || type === 'undefined' || value === null ); } // 在`wxs`中实现`fn.call` function call(fn, args) { if (args.length === 2) { return fn(args[0], args[1]); } if (args.length === 1) { return fn(args[0]); } return fn(); } // 处理arguments类数组对象为唯一memoize key function serializer(args) { if (args....

May 18, 2021 · 1 分钟 · Me