本篇参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax
Salesforce LWC学习(十六) Validity 在form中的使用浅谈
我们在第十六篇的时候,其中有一段代码是这样的:
代码语言:javascript复制let allValid = [...this.template.querySelectorAll('lightning-input')]
.reduce((validSoFar, inputFields) => {
inputFields.reportValidity();
return validSoFar && inputFields.checkValidity();
}, true);
功能大家肯定都知道,获取页面所有的 lightning-input,然后通过reduce函数,判断页面中的输入框是否验证通过。这个是官方lwc的demo,所以抄来即用。总有一些人研究的很细致,问了一个问题 ...是什么意思呢?不用可以不?因为自己的js也贼烂,所以自己也查了一下,做一下知识扩充。
...又称为展开语法,是es6新出的表达式和运算符行列的一个知识点,功能很强大,通常用于函数和数组,将数组表达式或者string在语法层面展开。详细的使用可以查看MDN的官方描述,针对项目中常用在数组中,常用功能描述如下:
- 数据copy(等同于 object.assign功能)
var arr = [1, 2, 3];
var arr2 = [...arr]; // like arr.slice()
arr2.push(4);
// arr2 此时变成 [1, 2, 3, 4]
// arr 不受影响
- 数据连接(等同于 Array.concat)
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
var arr3 = [...arr1, ...arr2]; //此句话等同于var arr3 = arr1.concat(arr2);
总结:es6中还有很多有用的功能待挖掘,学好lwc,js是关键啊。篇中有错误欢迎指出,有不懂欢迎留言。