本篇參考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax
Salesforce LWC學習(十六) Validity 在form中的使用淺談
我們在第十六篇的時候,其中有一段代碼是這樣的:
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的官方描述,針對項目中常用在數組中,常用功能描述如下:
1. 數據copy(等同於 object.assign功能)
var arr = [1, 2, 3]; var arr2 = [...arr]; // like arr.slice() arr2.push(4); // arr2 此時變成 [1, 2, 3, 4] // arr 不受影響
2. 數據連接(等同於 Array.concat)
var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; var arr3 = [...arr1, ...arr2]; //此句話等同於var arr3 = arr1.concat(arr2);
總結:es6中還有很多有用的功能待挖掘,學好lwc,js是關鍵啊。篇中有錯誤歡迎指出,有不懂歡迎留言。