成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

期待已久的React 18 Beta 來了

開發 前端
React團隊已經在多個應用的生產環境測試了Beta版本幾個月,并且相信他足夠穩定。所以,開發者已經可以升級至v18 Beta版本。

[[435280]]

大家好,我卡頌。

經過「React18工作組」幾個月工作,11月16日v18終于從Alpha版本更新到Beta版本。

本文會解釋:

  • 這次更新帶來的變化
  • 對開發者的影響
  • 如何安裝v18 Beta
  • v18穩定版何時會來

帶來的變化

經過與社區不斷溝通,Beta版將有如下三個API變動:

useSyncExternalStore將替代useMutableSource 用于訂閱外部源,見:#86討論[1]

用法類似如下:

  1. import {useSyncExternalStore} from 'react'
  2.  
  3. // 基礎用法,getSnapshot返回一個緩存的值 
  4. const state = useSyncExternalStore(store.subscribe, store.getSnapshot); 
  5.  
  6. // 根據數據字段,使用內聯的getSnapshot返回緩存的數據 
  7. const selectedField = useSyncExternalStore(store.subscribe, () => store.getSnapshot().selectedField); 

useId用于在客戶端與服務端之間產生唯一ID,避免SSR hydrate時元素不匹配,見#111討論[2]

用法類似如下:

  1. function Checkbox() { 
  2.   const id = useId(); 
  3.   return ( 
  4.     <> 
  5.       <label htmlFor={id}>Do you like React?</label> 
  6.       <input type="checkbox" name="react" id={id} /> 
  7.     </> 
  8.   ); 
  9. ); 

useInsertionEffect用于插入全局DOM節點,見#110討論[3]

useInsertionEffect工作原理類似useLayoutEffect,區別在于回調執行時還不能訪問ref中的DOM節點。

你可以在這個Hook內操作全局DOM節點(比如<style>或SVG<defs)。

操作CSS的庫(比如CSS-IN-JS方案)可以用這個Hook插入全局<style>。

用法類似如下:

  1. function useCSS(rule) { 
  2.   useInsertionEffect(() => { 
  3.     if (!isInserted.has(rule)) { 
  4.       isInserted.add(rule); 
  5.       document.head.appendChild(getStyleForRule(rule)); 
  6.     } 
  7.   }); 
  8.   return rule
  9. function Component() { 
  10.   let className = useCSS(rule); 
  11.   return <div className={className} />; 
  12. }

至此,v18的特性已經完備,正式版發布之前不會再新增API。

對開發者的影響

React團隊已經在多個應用的生產環境測試了Beta版本幾個月,并且相信他足夠穩定。所以,開發者已經可以升級至v18 Beta版本。

Beta作為「預發布版本」,與最終的正式版的區別是:可能還有少許bug,但整體穩定。

社區中兼容v18的知名項目包括:

  • Next.js
  • Gatsby
  • React Redux
  • React Testing Library

安裝Beta

安裝命令如下:

  1. # npm 
  2. npm install react@beta react-dom@beta 
  3. # yarn 
  4. yarn add react@beta react-dom@beta 

穩定版何時回來

根據Andrew的回復,正式版最早發布時間可能會在22年1月底。

總結

不管是新文檔[4]還是Beta版,可以發現下半年React團隊節奏明顯加快了。

從v15升級到v16啟用Fiber架構那天開始,React團隊就在為并發更新的穩定努力了。

這一天,終于不遠了......

參考資料

[1]#86討論:

https://github.com/reactwg/react-18/discussions/86

[2]#111討論:

https://github.com/reactwg/react-18/discussions/111

[3]#110討論:

https://github.com/reactwg/react-18/discussions/110

[4]新文檔:

http://beta.reactjs.org/

 

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2009-10-12 14:31:24

紅帽虛擬化

2021-07-19 22:31:39

微信微信客服移動應用

2020-12-09 11:10:58

GitHub代碼開發者

2021-11-09 09:00:00

Docker開發工具

2021-03-18 16:16:48

高德地圖AR步行導航

2013-09-16 11:10:30

2022-09-26 09:39:30

LinuxsystemdWSL

2021-08-16 12:20:03

Debian 11Linux軟件包

2020-11-17 06:04:59

ZigC語言

2019-01-16 15:15:33

GitHub微軟私有倉庫

2010-06-30 09:26:43

Firefox 4.0

2021-10-10 22:16:24

iOS蘋果系統

2021-06-16 06:05:25

React18React

2009-08-04 13:20:12

2021-07-18 22:31:29

微信功能手機

2009-03-19 20:41:31

VirtualBox GuestsOpenGL 3D

2017-08-31 16:26:43

微軟

2020-09-25 15:15:29

LinuxKubernetes開源

2021-05-22 22:54:22

微信直播文檔
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97国产精品 | 成人国产在线视频 | 性色网站 | 成人在线观看免费视频 | 狠狠操狠狠色 | 国产日韩欧美 | 成年无码av片在线 | 久在线视频播放免费视频 | 国产91中文 | 欧美三区视频 | 国产美女在线免费观看 | 亚洲国产一区二区三区, | 一区二区三区小视频 | 久久伊人操 | 欧美一区二区三区视频 | 岛国av一区二区 | 在线看av网址 | 国产99小视频 | 成人精品国产一区二区4080 | 99热视 | 精品国产18久久久久久二百 | 日本免费一区二区三区四区 | 免费一级片 | 91高清视频在线观看 | 超碰在线亚洲 | 99福利视频 | 激情视频一区 | 亚洲女人天堂成人av在线 | 成人免费视频观看 | 国产成人亚洲精品 | 天天干天天玩天天操 | 国产毛片在线看 | 国产精品久久久久久一区二区三区 | 国产精品久久久免费 | 成人免费av | 伊人久操| 国产亚洲精品久久久久动 | 欧美视频成人 | 欧美成人精品一区二区三区 | 超级黄色一级片 | 日韩在线观看一区二区三区 |