精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

項目升級到 React19 難度如何?生態初探:利用 React-markdown 實現代碼高亮

開發 前端
在我嘗試了幾個三方庫之后,總體感受就是基本上都能正常在 React19 項目中使用,即使這些三方庫還沒有升級到 React19。當然我也把我某一個 React18 的項目升級到 React19,小幅度更改之后,也成功升級了。

經過前面幾個實踐案例的學習,我們都已經知道,React19 有非常吸引開發者的特性值得我們去升級。但是與此同時,我們也感受到了某些改動確實挺大的。因此在交流群里,大家會有一個比較明顯的擔憂,這種比較大的版本更新,是否會導致升級困難?

其實在官方文檔中的升級指引中,有明確提到這個問題,開發團隊預計這些重大更改不會影響到大多數程序。并且我們看到,react 刪除的功能中,大多數都是幾年前都已經標記棄用不建議大家使用的內容。

例如,class 語法中,曾經支持了字符串引用 ref。

// before
class MyComponent extends React.Component {
  componentDidMount() {
    this.refs.input.focus();
  }

  render() {
    return <input ref='input' />;
  }
}

這種使用方式因為存在多個缺點,在 2018 年 3 月(V16.3.0)中被標記為不推薦使用,直到現在才明確要刪除代碼。調整之后,開發者需要遷移到 ref 回調函數的使用。這個也并非新功能,而是一直都支持的寫法,因此開發者有充裕的時間來解決這個問題。

// after
class MyComponent extends React.Component {
  componentDidMount() {
    this.input.focus();
  }

  render() {
    return <input ref={input => this.input = input} />;
  }
}

又例如,React19 決定要移出 ReactDOM.findDOMNode,這個 API 曾經在三方庫中被大量使用,但是他已經在 2018 年 10 月被標記為廢棄。由于他是一個性能較差,又容易受到重構影響,因此風險會比較大。

// Before
import {findDOMNode} from 'react-dom';

function AutoselectingInput() {
  useEffect(() => {
    const input = findDOMNode(this);
    input.select()
  }, []);

  return <input defaultValue="Hello" />;
}

在 React18 的版本中,提供了新的方案來替換該用法。

// After
function AutoselectingInput() {
  const ref = useRef(null);
  useEffect(() => {
    ref.current.select();
  }, []);

  return <input ref={ref} defaultValue="Hello" />
}

當然,其他的變化還有很多,我們就不一一列舉,許多破壞性變更早在 React18 中就已經存在,因此對于長期維護的三方庫而言,React19 的升級壓力非常小。并且為了簡化升級過程,React 發布了一個過渡版本 React 18.3,該版本功能與 React 18.2 相同,但是增加了對已棄用 API 代碼的刪除,并且調整了相關的警告。

目前,該過渡版本已經發布了剛好半個月,但已經被開發者大規模使用了。如下圖所示,這個下載量,已經大概相當于 Vue 的整體使用水平了,所以整個行業對于 React19 的升級響應非常積極。

與此同時,我們還可以利用 react 團隊之前發布的一個工具用于在代碼中自動替換棄用的寫法,他就是 react-codemod。

因此總體來說,我們應該可以輕松的在 react19 中應用大多數目前仍然保持維護的三方工具庫。為了驗證我的猜想,我在 React19 項目中引入了許多我正在使用的三方工具庫來嘗試。這里就以 react-markdown 為例,跟大家分享一下在新項目中的運用情況。

react-markdown 是 react 生態中,一個非常好用 的 md 文件解析工具。依據這個工具,我們可以輕松創建一個 md 編輯器。

如果你要設計一個個人博客,并且需要展示技術類文章,這個工具可以很好幫助到你。我們這里以展示一個高亮代碼塊為目標,分享引入過程。

首先我們在項目中,引入 react-markdown。

npm i react-markdown

有了這個之后,我們就可以在項目中解析一些簡單的 md 格式。

例如,我們可以解析如下格式。

const input = '# This is a header\n\nAnd this is a paragraph'

在頁面中引入 react-markdown。

import Markdown from 'react-markdown'

然后直接在 JSX 中使用即可。

<Markdown>{input}</Markdown>

渲染結果如下:

完了之后,有一些比較復雜的格式,react-markdown 可以引入不同的插件來支持。

例如,react-gfm,可以幫助我們解析列表等格式,如下所示:

const text2 = `A paragraph with *emphasis* and **strong importance**.

> A block quote with ~strikethrough~ and a URL: https://reactjs.org.

* Lists
* [ ] todo
* [x] done

A table:

| a | b |
| - | - |
`

安裝插件。

npm i remark-gfm

然后直接在組件中使用即可。

import remarkGfm from 'remark-gfm'

// jsx
<Markdown remarkPlugins={[remarkGfm]}>
  {text2}
</Markdown>

渲染結果如下。由于我沒有引入 css,因此樣式比較原始。

我們可以通過查看 html 標簽來查看渲染結果。驗證之后發現已經渲染成功。

當然,如果我們要渲染代碼快,也需要引入特定的插件,我這里使用了 rehype-highlight。

npm i rehype-highlight

安裝好之后,我們可以專門在 .md 文件中編寫好 md 內容,在 vite 項目中,可以直接通過如下方式引入 .md 文件。

import code from './code.md?raw'

然后在頁面組件中使用。

import rehypeHighlight from 'rehype-highlight'

// jsx
<Markdown 
  remarkPlugins={[remarkGfm]} 
  rehypePlugins={[rehypeHighlight]}
>{code}</Markdown>

此時,我們觀察頁面,發現標簽已經渲染好了。

但是此時我們還沒有樣式文件。當然,我們可以直接自己根據對應元素中的 class 名來寫樣式。

由于設計能力有限,我一般引用別人已經設計好的樣式文件。

如下這個網站收集了大量的高亮風格,我們直接復制代碼使用即可。

https://highlightjs.tiddlyhost.com

我選擇了一個,把他單獨寫在一個 css 文件中,并引入對應的組件。渲染結果如下:

搞定!

總結

在我嘗試了幾個三方庫之后,總體感受就是基本上都能正常在 React19 項目中使用,即使這些三方庫還沒有升級到 react19。當然我也把我某一個 React18 的項目升級到 React19,小幅度更改之后,也成功升級了。

因此我預計我們有希望在 react19 正式版本發布之后不久把項目正式升級。

但是,一個不太好的消息是,antd 由于使用了一些很早版本就棄用的方法,例如 findDOMNode,還有一些 React19 會棄用的 api, 例如 forwardRef,導致了 antd 一運行就各種報錯。許多組件無法正常使用。這種就只能等 antd 適配進度了,他們應該會很快更新。

責任編輯:姜華 來源: 這波能反殺
相關推薦

2024-06-18 09:36:45

2022-03-25 08:31:09

ReactReact 18升級

2024-04-28 09:01:06

React 19更新前端

2024-05-08 08:50:39

React19模式UI

2025-02-17 12:24:06

2024-02-20 07:44:43

2024-12-06 11:22:27

2024-12-09 08:21:49

2024-02-22 17:54:30

React編譯器團隊

2025-04-03 07:37:55

2025-07-17 08:18:07

2024-10-28 12:46:22

2021-06-03 09:31:56

React狀態模式

2024-12-16 08:40:51

2020-01-13 10:00:32

升級Windows 10Windows

2011-09-27 09:13:16

Ubuntu 11.0

2024-05-11 09:38:05

React編譯器React 19

2021-06-08 09:35:11

Cleaner ReaReact開發React代碼

2023-02-23 18:14:21

2024-06-12 07:44:28

點贊
收藏

51CTO技術棧公眾號

日韩av大片在线观看| 亚洲精品久久一区二区三区777| 国产福利在线观看| 经典三级在线一区| 欧美富婆性猛交| 亚欧洲乱码视频| 欧洲亚洲精品久久久久| 亚洲尤物视频在线| 日韩精品久久一区二区三区| 国产浮力第一页| 日韩成人免费看| 欧美俄罗斯性视频| 欧美丰满老妇熟乱xxxxyyy| 日韩三级网址| 欧美色综合久久| 黄色大片中文字幕| 九义人在线观看完整免费版电视剧| 成人动漫视频在线| 国产精品日韩电影| 国产一级特黄aaa大片| 青青草成人影院| 亚洲成人av片在线观看| 第一区免费在线观看| 国产在线观看www| 亚洲精品欧美在线| 亚洲第一综合| 日韩大胆人体| 成人黄色在线网站| 91久久国产婷婷一区二区| 国产精品视频123| 欧美网站在线| 久久视频在线视频| 日本猛少妇色xxxxx免费网站| av自拍一区| 91精品国产欧美一区二区18| 亚洲这里只有精品| 性欧美超级视频| 精品国产鲁一鲁一区二区张丽| 91手机视频在线| yw视频在线观看| 久久午夜色播影院免费高清| 风间由美久久久| 精品人妻一区二区三区四区不卡 | 国产成人av免费| 一区二区三区国产盗摄| 韩国精品美女www爽爽爽视频| 久久噜噜色综合一区二区| 欧洲三级视频| 一区二区三区高清国产| 中文字幕xxx| 香蕉一区二区| 亚洲美女av黄| av网站免费在线看| 国产欧美日韩精品一区二区免费| 日韩精品免费在线播放| 特级西西人体4444xxxx| 国产香蕉精品| 日韩成人黄色av| 水蜜桃av无码| 亚洲春色h网| 亚洲偷熟乱区亚洲香蕉av| 国产色视频一区二区三区qq号| 青青草原在线亚洲| 亚洲美女精品成人在线视频| 国产制服丝袜在线| 女人丝袜激情亚洲| 亚洲亚裔videos黑人hd| 久久久久人妻一区精品色| 欧美激情黄色片| 久久精品国产v日韩v亚洲| 天海翼在线视频| 欧美体内she精视频在线观看| 欧美激情久久久| 日韩一区二区视频在线| 首页国产欧美久久| 国产日韩精品一区二区| 精品人妻一区二区三区日产乱码 | 特级毛片在线| 亚洲成人免费看| 免费在线观看亚洲视频| 成人在线爆射| 欧美一级一区二区| 污污内射在线观看一区二区少妇| 九九久久精品| 色青青草原桃花久久综合| 黄色一级视频免费| 久久久噜噜噜久久狠狠50岁| 国产日韩欧美在线播放| 黑人精品一区二区| 亚洲国产精品黑人久久久| 一区二区三区在线观看www| 影音先锋在线播放| 色呦呦国产精品| 国产精品久久久久久久av福利| 综合欧美亚洲| 国产一区二区三区在线| 欧产日产国产v| 日韩精品电影在线| 99三级在线| 黄色大片在线看| 亚洲精品成人在线| 午夜视频在线瓜伦| 日韩精品视频在线看| 亚洲精品一区av在线播放| 91嫩草|国产丨精品入口| 亚洲一区久久| 999在线观看免费大全电视剧| 青青草在线免费观看| 综合电影一区二区三区 | 草视频在线观看| 久久精品在线| 亚洲xxx视频| 91精品国产综合久久久久久豆腐| 亚洲国产视频一区| 日韩av自拍偷拍| 亚洲人成精品久久久| 欧美日韩成人黄色| 亚洲最大成人在线视频| 久久一留热品黄| 久久精品无码中文字幕| 国产69精品久久| 亚洲一区999| 日本三级小视频| 成人午夜激情在线| 亚洲国产精品女人| 久久69成人| 亚洲视频欧美视频| 精品成人久久久| 国产激情视频一区二区三区欧美 | 国产精品久久国产愉拍| 91av免费看| 日本在线免费中文字幕| 在线免费精品视频| 香蕉视频黄色在线观看| 亚洲国产婷婷| 国产美女精品在线观看| 日本乱理伦在线| 91精品国产美女浴室洗澡无遮挡| 中文字幕欧美激情极品| 久久天堂精品| 欧美一区免费视频| 成人黄色免费短视频| 精品香蕉在线观看视频一| 久久久一二三区| 国产黑丝在线一区二区三区| www.亚洲一区二区| 国产日韩欧美中文在线| 久久久av一区| 99国产精品欲| 亚洲精品国产品国语在线app| 激情图片中文字幕| 中文字幕一区二区三区乱码图片 | 亚洲精品中文在线观看| 午夜av中文字幕| 91精品国产乱码久久久久久| 成人国产精品久久久| 日本中文在线| 制服丝袜av成人在线看| 黄视频网站免费看| 国产久卡久卡久卡久卡视频精品| 国产四区在线观看| 亚洲精选av| 久久免费视频网站| 欧洲毛片在线| 欧美三级在线看| 午夜国产福利一区二区| 国产激情一区二区三区| 国产精品第157页| 色婷婷av一区二区三区丝袜美腿| 欧美在线免费看| 成年人视频网站在线| 欧美日韩国产高清一区| 免费成年人视频在线观看| 粉嫩一区二区三区性色av| 91好吊色国产欧美日韩在线| 久久av综合| 国产精品一区久久| 青草青在线视频| 亚洲精品中文字幕女同| 中文无码av一区二区三区| 国产精品进线69影院| 国产麻豆剧传媒精品国产| 亚洲永久字幕| 亚洲 国产 日韩 综合一区| 户外露出一区二区三区| 欧美成在线视频| 色中色在线视频| 欧美日韩国产一级片| 久久av高潮av无码av喷吹| 久久午夜羞羞影院免费观看| 国产三级精品三级在线| 亚洲国产精品第一区二区三区| 日韩中文字幕一区二区| 欧美影院精品| 国产成人精品一区二区| 秋霞在线午夜| 少妇高潮 亚洲精品| 日本高清视频www| 欧美三区免费完整视频在线观看| 国产一级做a爱免费视频| 国产亚洲精久久久久久| 极品白嫩的小少妇| 美女一区二区三区在线观看| 美女扒开大腿让男人桶| 四虎成人av| 蜜桃传媒一区二区| 51社区在线成人免费视频| 国产精品免费视频xxxx| 91超碰在线免费| 久久精品99国产精品酒店日本| 天天干,夜夜操| 91精品国产综合久久久久久久久久 | 国产精品 欧美激情| youjizz久久| 午夜宅男在线视频| 亚洲精品裸体| 992tv快乐视频| 日本久久成人网| 91精品免费| www.26天天久久天堂| 欧美激情国产精品| 国产在线更新| 亚洲日本中文字幕| 亚洲国产精品suv| 欧美性生活影院| 日韩视频在线观看一区| 一区二区三区鲁丝不卡| 国产视频不卡在线| 久久久久国产免费免费| 欧美成人精品一区二区综合免费| 日韩高清在线电影| 国产精品333| 激情91久久| 爱爱爱视频网站| 精品国产91| 国产伦精品一区二区三区| 蜜桃精品视频| 国产伦精品免费视频| 亚洲午夜天堂| 欧美一区第一页| av成人影院在线| 久久99国产综合精品女同| 亚洲精品承认| 久久久999成人| 中文字幕在线免费| 亚洲女人天堂色在线7777| 国产视频aaa| 欧美一区二区国产| 国产又黄又粗又长| 欧美日韩国产片| 97人妻精品一区二区三区动漫| 一本大道综合伊人精品热热 | 丁香在线视频| 亚洲午夜激情免费视频| 日本韩国一区| 亚洲精品色婷婷福利天堂| 天天爽夜夜爽夜夜爽| 亚洲第一区中文99精品| 日韩在线免费看| 国产手机视频精品| 性xxxfllreexxx少妇| 亚洲香蕉av在线一区二区三区| 久草在线青青草| 国产亚洲精品高潮| 深夜福利视频在线免费观看| 亚洲美女免费精品视频在线观看| 四虎影院在线域名免费观看| 日韩av网址在线| 二区三区在线| 中文字幕不卡在线视频极品| 91caoporm在线视频| 中文字幕亚洲天堂| 1区2区3区在线视频| 色在人av网站天堂精品| 欧美wwww| 国产成人精品电影| 另类一区二区三区| 91久久久久久久久久久久久| 风间由美一区二区av101| 国产一区二区免费电影| 天堂网av成人| 免费久久99精品国产自| 91精品啪在线观看国产81旧版 | 最新av网站在线观看| 日韩中文字幕免费视频| 欧美14一18处毛片| 热久久99这里有精品| jizz久久久久久| 成人在线免费观看一区| 亚洲成aⅴ人片久久青草影院| 日韩中文字幕一区| 欧美freesex交免费视频| 成人精品视频在线播放| 性8sex亚洲区入口| 国产v亚洲v天堂无码久久久| 国产自产v一区二区三区c| 一二三区视频在线观看| 久久久无码精品亚洲日韩按摩| 青青操在线视频观看| 偷拍日韩校园综合在线| 精品无码一区二区三区的天堂| 91精品国产入口| 日韩精品系列| 欧美成人亚洲成人| 亚洲精品555| www.久久艹| 精品久久久中文字幕| 一区二区三区四区欧美| 亚洲欧美大片| 国产资源中文字幕| 99国内精品久久| 国产高潮流白浆| 日本精品一区二区三区高清| av免费观看在线| 一区二区国产精品视频| 丰满大乳少妇在线观看网站 | 国产精品a成v人在线播放| 欧美唯美清纯偷拍| 欧美77777| www.xxxx精品| 国产麻豆一区| 精品久久久久久乱码天堂| 日本不卡电影| 国产精品久久久久久久乖乖| 蜜臀精品一区二区三区在线观看 | 国产在线视频欧美一区| 国产美女在线精品免费观看| 综合激情视频| 午夜两性免费视频| 成人小视频免费观看| 欧美激情精品久久| 欧美日韩免费观看一区二区三区 | julia一区二区三区中文字幕| 国产日韩欧美一区二区| 欧美日韩岛国| 激情文学亚洲色图| 国产女人18水真多18精品一级做| 日本中文字幕久久| 亚洲国产又黄又爽女人高潮的| 99热国产在线| a级国产乱理论片在线观看99| 国产精品久久占久久| 污网站免费在线| 国产精品久久久久久久久久久免费看| 国内精品福利视频| 亚洲国产欧美精品| 日本不卡1234视频| 国产免费一区| 99热在线精品观看| 色无极影院亚洲| 色综合久久久久久久| 五月婷婷六月丁香| 日韩av观看网址| 久久av影视| 国产日韩欧美精品在线观看| 成人免费视频免费观看| 91精品国产高清一区二区三蜜臀| 91精品国产综合久久精品| 欧美私人网站| 成人福利在线视频| 亚洲午夜极品| av av在线| 精品高清美女精品国产区| 日本私人网站在线观看| 日产精品久久久一区二区福利| 久久最新网址| 手机在线国产视频| 一区二区三区美女视频| 精品国产一级片| 68精品久久久久久欧美| 免费成人av| 小明看看成人免费视频| 亚洲视频在线一区| 国产福利资源在线| 欧美一二三视频| 国产影视一区| 免费一区二区三区在线观看| 亚洲卡通欧美制服中文| 日本精品久久久久| 欧美中文在线观看国产| 欧美国产小视频| 又大又长粗又爽又黄少妇视频| 欧美午夜精品久久久久久久| 国产高清美女一级毛片久久| 国产综合在线观看视频| 99pao成人国产永久免费视频| 美女洗澡无遮挡| 欧美性猛交xxxx乱大交退制版| gogo在线高清视频| 国产精品乱码视频| 久久久精品网| 99热在线观看精品| 精品久久久久久综合日本欧美| 欧美日韩视频免费观看| 吴梦梦av在线| 不卡的av在线| 国产麻豆免费视频| 91国内免费在线视频| 香蕉视频官网在线观看日本一区二区| 中文字幕一二三区|