React 裡面的循環
在還未了解這些方法之前,我們先看一個小例子:
for(let i = 0; i < 3; i++){ for(let j = 0; j < 2; j++){ console.log(i+:+j) }}result:0:00:11:01:22:12:2
如果我在第二層 for 循環時,直接 return console.log 會輸出什麼呢?
function a() { for(let i = 0; i < 3; i++){ for(let j = 0; j < 2; j++){ return console.log(i+:+j) } }}a()result:0:0
注意:
- for 循環裡面直接 return 的話,會阻斷循環的進程
- return 需要在函數內才能執行,所以外層包了一個函數
上面的例子是我之前犯的錯誤,我在 React 裡面利用循環後,直接 return 了 html 的代碼,所以中斷了循環的內容。下面我們來看看在 Jsx 中正確的書寫方式是什麼樣的呢?
方法1:
let arr = []for(let i = 0; i < 3; i++){ arr.push(<span></span>)}return arr<div>{ arr }</div>result:<div> <span></span> <span></span> <span></span></div>
方法2:
<div> { [...Array(3)].map((item, index) => { return ( <span></span> ) }) }</div>這種方式還是利用 map 方法,設定了循環的總數量為 3,item 是沒有實質含義的但是需要佔位使用。
在回答鏈接中還給出了其他幾種方式,可以進行參考,後續我會根據每種方式寫一個demo來驗證,更新總結內容...
可以參考 Stack OverFlow 中關於此問題的回答:loop inside React JSX
推薦閱讀:
※ELSE 技術周刊(2017.07.31期)
※redux-saga 實踐總結
※初級前端er如何學習react.js?
※怎麼樣理解reactjs中組件的反模式?
TAG:React |