自認(rèn)為精通React,這些JavaScript概念你掌握了沒(méi)?
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)
想要確定一個(gè)人是否掌握React,考考他最新的JavaScript語(yǔ)法就可以了。JavaScript語(yǔ)法對(duì)于理解React至關(guān)重要,它能讓我們更加容易地閱讀日志,編寫(xiě)出更簡(jiǎn)潔的React代碼。
一旦掌握了一些新的JavaScript語(yǔ)法,編寫(xiě)React代碼將變得輕而易舉。來(lái)看看精通React不可缺少的關(guān)鍵概念吧!
箭頭功能
箭頭功能非常重要,它讓功能變得更短,更整潔,并且不必?fù)?dān)心this。現(xiàn)在,React有了hooks API,就可以在任何地方使用箭頭功能了。
例如,可以將箭頭函數(shù)與hooks API結(jié)合使用,如下所示:
- importReact from "react";
- const App = () => {
- return <divclassName="App">foo</div>;
- };export default App;
在上面的代碼中,使用箭頭函數(shù)定義了一個(gè)非常簡(jiǎn)單的React組件。該代碼僅顯示靜態(tài)文本,但是可以通過(guò)動(dòng)態(tài)功能輕松地對(duì)其進(jìn)行擴(kuò)展。
你還可以編寫(xiě)以下代碼,將hooks添加到應(yīng)用程序零件中:
- importReact, { useState } from "react";
- const App = () => {
- const [count, setCount] =useState(0); return (
- <div className="App">
- <button onClick={() =>setCount(count => count + 1)}>increment</button>
- <p>{count}</p>
- </div>
- );
- };export default App;
在以上代碼中,有useState作為hooks,用來(lái)更新計(jì)數(shù)狀態(tài)。
在onClick prop.中使用該代碼。接著傳入了一個(gè)箭頭函數(shù),該函數(shù)調(diào)用 setCount 功能。在這個(gè)代碼里面,還有另一個(gè)箭頭功能來(lái)更新現(xiàn)有的計(jì)數(shù)狀態(tài)。
筆者認(rèn)為不必使用this。傳統(tǒng)功能或bind函數(shù)可以隨時(shí)隨地借助hooks API。hooks API只是變得更簡(jiǎn)潔,使用箭頭功能時(shí)為我們省去了不少麻煩。
帶箭頭功能hooks API的簡(jiǎn)化,使React從基于類(lèi)的組件過(guò)渡到基于函數(shù)的組件。
箭頭函數(shù)對(duì)于操縱數(shù)組非常有用,因?yàn)閿?shù)組方法通常會(huì)在回調(diào)中傳遞,而傳遞回調(diào)的優(yōu)秀方法是使用箭頭函數(shù)。例如,如果要過(guò)濾項(xiàng)目并在React中顯示它們,可以使用filter和map,方法如下:
- importReact from "react";const users = [
- { user: "foo", active: true},
- { user: "bar", active: false},
- { user: "baz", active: false}
- ];const App = () => {
- return (
- <div className="App">
- {users
- .filter(u => u.active)
- .map((u, i) => (
- <p key={i}>{u.user}</p>
- ))}
- </div>
- );
- };export default App;
在上面的代碼中,有user數(shù)組,在應(yīng)用程序通過(guò)調(diào)用帶箭頭函數(shù)的filter,將active設(shè)置為 true。然后通過(guò)map,在由filter返回的數(shù)組上映射user內(nèi)部屬性,以在數(shù)組中呈現(xiàn)用戶名。接著你就能看到屏幕上顯示“ foo”。
箭頭函數(shù)讓代碼簡(jiǎn)短明了,你可以永遠(yuǎn)不必在代碼中寫(xiě)function這個(gè)詞或者處理this這個(gè)值。
默認(rèn)參數(shù)
默認(rèn)參數(shù)可以在代碼中使用默認(rèn)值,將參數(shù)添加到函數(shù)中。在React代碼中,大多使用默認(rèn)參數(shù)以及帶有對(duì)象參數(shù)的解構(gòu)語(yǔ)法,它可以將屬性分解為變量并有選擇地使用。
例如,可以將默認(rèn)參數(shù)寫(xiě)入代碼,如下所示:
- importReact from "react";const Greeting = ({
- greeting = "hello",
- firstName = "jane",
- lastName = "smith"
- }) => (
- <p>
- {greeting} {firstName} {lastName}
- </p>
- );const App = () => {
- return <Greetinggreeting="hi" />;
- };export default App;
箭頭函數(shù),解構(gòu)和默認(rèn)參數(shù)是JavaScript功能中最有用的兩個(gè)功能,可以看到,React代碼被大大精簡(jiǎn)了,可讀性也增強(qiáng)了。你學(xué)會(huì)了嘛?