【tips】微信小程序wxs 注意

一些js的方法,本来想直接在模板上用,然后。。。

  1. 正则 要getRegExp,不能有/
    比如
function kebabCase(str) {
  return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
}

就不行,得替换:

function kebabCase(str) {
  var newWord = str
    .replace(getRegExp("[A-Z]", 'g'), function (i) {
      return '-' + i;
    })
    .toLowerCase()
    .replace(getRegExp("^-"), '');

  return newWord;
}
  1. 不能用for in , 不能Object.keys,
    然后看vant咋用的

它定义了一个objet.wxs

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 keys = object.keys(styles); 就可以了
更新:
注意 ⚠️ ⚠️ ⚠️ ⚠️ 然后发现vant的这个也不靠谱,如果你的styles里面有{color:‘rgb(xx,xx,xxx)’}就不行了,因为它的逻辑‘split(‘,’)’…

改写了下objet.wxs:

var REGEXP = getRegExp('{|}|"', 'g');

function keys(obj) {
    var str = JSON.stringify(obj).replace(REGEXP, '');
    var parts = str.split('(');
    var resultStr = '';

    for (var i = 0; i < parts.length; i++) {
        var part = parts[i];
        var rightIndex = part.indexOf(')');
        if (rightIndex!== -1) {
            resultStr += part.slice(rightIndex + 1);
        } else {
            resultStr += part;
        }
    }

    return resultStr.split(',')
      .map(function (item) {
            return item.split(':')[0];
        });
}

module.exports.keys = keys;
  1. 常见就,啥const let 啥不用啦,还有一些写习惯了的错误示范啦
// module.exports = {addPxIfNeeded,getStyle}; 
module.exports = {
  addPxIfNeeded: addPxIfNeeded,
  getStyle: getStyle
};

结论:垃圾
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值