devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
Języki programowania
Home›Języki programowania›React 17.0 RC – kandydat do wydania bez nowych funkcji

React 17.0 RC – kandydat do wydania bez nowych funkcji

By Bernadeta Zapała
11 sierpnia 2020
153
3
Share:

Twórcy React, Dan Abramov i Rachel Nabors, opublikowali pierwszą wersję kandydata do wydania React 17.0 RC. Mimo tego, że ostatnia wersja wyszła ponad dwa lata temu, to najnowszy kandydat do wydania nie dodaje żadnych nowych funkcji. Jednak React 17 zawiera kilka istotnych zmian, szczególnie przy ułatwieniu aktualizacji Reacta.

Nowe funkcje są zaplanowane na kolejne wydania. Twórcy nazwali siedemnastkę „odskocznią, która pozwoli bezpieczniej osadzić drzewo zarządzane przez jedną wersję Reacta wewnątrz drzewa, którym zarządza inna wersja.”

„Wszystko albo nic”

Każda z aktualizacji wprowadzonych w ciągu ostatnich siedmiu lat była oddzielnym elementem. Programiści mieli do wyboru pozostać przy starej wersji lub zaktualizować całą aplikację do nowego wydania. Nie było możliwości łączenia wersji w obrębie aplikacji. Niektórych zmian interfejsu API nie można wykonać w sposób zautomatyzowany. Nadal są one obsługiwane w React, jednak niewielka ilość aplikacji z nich teraz korzysta. Przy aktualizacji trzeba wspierać starsze wersje API lub pozostawiać aplikacje w starszej wersji React. Każda z tych opcji nie pozwala na rozwój aplikacji.

Stopniowe aktualizacje

Nowy React 17.0 RC pozwala na stopniowe aktualizacje. Jest to duże usprawnienie, w przypadku gdy baza kodu powstała kilka lat temu. Do tej wersji utrzymanie dwóch wersji React na stronie powodowało problemy, a sama strona nie była zbyt stabilna.

Każda kolejna aktualizacja React będzie dawała możliwość uaktualniania całej aplikacji naraz jak wcześniej lub „kawałek po kawałku”. Przykładowo, programista będzie mógł przenieść większą część swojej aplikacji do React 18, ale zachować lazy-loading czy podtrasę z React 17.

Wprowadzona opcja ma wpływ w przypadku większych aplikacji, nieutrzymywanych aktywnie. Jednak zaleca się dalsze całkowite aktualizowanie wersji.

Zmiany w delegowaniu wydarzeń

Technicznie zagnieżdżanie aplikacji opracowanych w różnych wersjach React zawsze było możliwe. Jednak ze względu na sposób działania systemu zdarzeń React nie zawsze się to udawało.

Zwykle w komponentach React wbudowane programy obsługi zdarzeń są pisane następująco:

<button onClick={handleClick}>

Odpowiednik Vanilla DOM dla powyższej linii to:

myButton.addEventListener('click', handleClick);

W przypadku większości zdarzeń React nie dołącza ich do węzłów DOM, na których są deklarowane. Jest to delegowanie zdarzeń – dołączanie jednej procedury obsługi na typ zdarzenia bezpośrednio w węźle document.

Jednak w przypadku stopniowych aktualizacji pojawia się problem. Mając wiele wersji React na stronie, każdy rejestruje obsługę zdarzeń u góry. Przez to pokazują się błędy:

e.stopPropagation(): if a nested tree has stopped propagation of an event, 
the outer tree would still receive it

– jeśli zagnieżdżone drzewo przestało propagować zdarzenie, zewnętrzne drzewo nadal będzie je otrzymywało.

React 17.0 RC

W związku z tym twórcy React 17.0 RC zmienili sposób dołączania zdarzenia do DOM. React nie będzie dołączał obsługi zdarzeń na poziomie document. Dołączy je do głównego kontenera DOM, w którym renderowane jest drzewo React:

const rootNode = document.getElementById('root');
ReactDOM.render(<App />, rootNode);

Wprowadzana zmiana pozwala także na zagnieżdżanie React także w innych technologiach, np. jQuery.

Inne przełomowe zmiany w React 17.0 RC

Zmiany w React 17 nie są duże. Nie usunięto żadnej z wycofanych wcześniej metod. W sumie dostosowano mniej niż 20 z ponad 100 000 komponentów.

Usuwanie prywatnych eksportów

Jedną z ważnych zmian jest także usunięcie niektórych wewnętrznych elementów React. Przykładowo React Native for Web był zależny od niektórych elementów wewnętrznych systemu zdarzeń. Prywatny eksport został usunięty w React 17, a React Native for Web był jedynym projektem, który z nich korzystał.

Instalacja React 17.0 RC

Kandydat do wydania jest podatny na błędy, więc nie należy go wprowadzać jeszcze na produkcji.

Instalacja React 17 RC z npm:

npm install react@17.0.0-rc.0 react-dom@17.0.0-rc.0

Instalacja React 17 RC z Yarn:

yarn add react@17.0.0-rc.0 react-dom@17.0.0-rc.0

Więcej o zmianach w nowym kandydacie do wydania React na oficjalnym blogu React.

TagsDevelopmentReactReact 17.0 RCWebDevelopment

Share:

  • iOS 13.6.1
    Systemy i przeglądarki

    iOS 13.6.1 z naprawionym błędem wyświetlacza

  • FrontendQA

    Playwright 1.0 automatyzuje przeglądarki m.in z Chromium

  • Systemy i przeglądarki

    Web Capture – nowa funkcja testowana w Edge Canary

  • 3 marca 2021

    Vite 2.0 wydane z nowymi wtyczkami

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT