1) Будьте в курсе последних обновлений в своей отрасли, иначе вы потеряетесь
2) Следите за руководителями вашей отрасли
Когда дело доходит до технологий, нет более важной работы, чем быть в курсе новейших способов кодирования вашего специального языка. Я хорошо знаю React.js, и я также очень хорошо знаю Redux, однако эти две конкретные библиотеки быстро меняются, и технические компании так же быстро приспосабливаются к изменениям. React был создан в 2011 году, и с тех пор один и тот же язык React выглядит совершенно по-другому, почти неузнаваемо.
Два основных обновления:
Приостановка:
React.Suspense означает, что мы можем приостановить рендеринг наших компонентов до тех пор, пока не будет выполнено какое-либо условие (например, данные из конечной точки или ресурса будут загружены), и до тех пор пока не будет отображаться запасной вариант (например, счетчик).
import { dontRenderMeUntilThisIsReady, Suspense as TryRenderTheseChildren } from "fictitious-react"; import getMyDependency from "fictitious-dependency-fetcher"; function ComponentThatDependsOnSomething(props) { const dependency = dontRenderMeUntilThisIsReady( getMyDependency(props.dependencyId) ); return <h1>{dependency.data}</h1>; } function App(props) { return ( <TryRenderTheseChildren andIfTheyAreNotReadyRenderThis={<ImTheFallback />}> <ComponentThatDependsOnSomething dependencyId={1} /> <ComponentThatDependsOnSomething dependencyId={2} /> </TryRenderTheseChildren> ); }
Крючки:
Хуки позволяют использовать состояние и другие функции React без написания класса.
Код без хуков:
import React, { Component } from "react"; export default class Button extends Component { state = { buttonText: "Click me, please" }; handleClick = () => { this.setState(() => { return { buttonText: "Thanks, been clicked!" }; }); }; render() { const { buttonText } = this.state; return <button onClick ={this.handleClick}>{buttonText}</button>; } }
Код с хуками:
import React, { useState } from "react"; export default function Button() { const [buttonText, setButtonText] = useState("Click me, please"); function handleClick() { return setButtonText("Thanks, been clicked!"); } return <button onClick={handleClick}>{buttonText}</button>; }
Получение данных без хуков:
import React, { Component } from "react"; export default class DataLoader extends Component { state = { data: [] }; componentDidMount() { fetch("http://localhost:3001/links/") .then(response => response.json()) .then(data => this.setState(() => { return { data }; }) ); } render() { return this.props.render(this.state.data); } }
Получение данных с помощью хуков:
import React, { useState, useEffect } from "react"; export default function DataLoader() { const [data, setData] = useState([]); useEffect(() => { fetch("http://localhost:3001/links/") .then(response => response.json()) .then(data => setData(data)); }); return ( <div><ul> {data.map(el => ( <li key={el.id}>{el.title}</li> ))} </ul></div> ); }
Подкасты и Twitter идеально подходят для того, чтобы быть в курсе обновлений. Есть несколько ключевых людей, за которыми я слежу, таких как Шон Суикс и Дэн Абрамов, а также подкаст React.