跳至主要內容

安裝

NPM

Recoil 套件位於 npm。若要安裝最新穩定版本,請執行下列指令

npm install recoil

或者,如果您使用 yarn

yarn add recoil

或者,如果您使用 bower

bower install --save recoil

Bundler

透過 NPM 安裝的 Recoil 與模組打包器相符,例如 WebpackRollup

ES5 支援

Recoil 組建並未轉譯為 ES5,我們不支援使用 Recoil 和 ES5。如果您需要支援未提供 ES6 原生功能的瀏覽器,您可以使用 Babel 編譯您的程式碼並使用預設 @babel/preset-env。但是,我們不支援此用法,且您可能會遇到問題。特別是,就像 React 一樣,Recoil 取決於 MapSet 型別及 ES6 的其他功能。使用多重載入模擬這些功能可能會導致效能不佳。

CDN

自 0.0.11 版開始,Recoil 提供 UMD 建置,可直接用於 <script> 標籤,並在全域命名空間中公開 Recoil 符號。建議連結至特定版本號碼並建置,以避免較新版本意外損毀

<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/recoil.production.js"></script>

可瀏覽 CDN 上所有 Recoil 檔案,網址為 jsdelivr

ESLint

若專案中使用 eslint-plugin-react-hooks。例如,使用類似的 eslint 設定

// previous .eslint config
{
"plugins": [
"react-hooks"
],
"rules": {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
}
}

建議將 'useRecoilCallback' 新增至 additionalHooks 清單。進行此變更後,當傳遞給 useRecoilCallback() 的依賴項錯誤時,ESLint 會發出警告並建議修正方式。additionalHooks 的格式為正則表達式字串。

// modified .eslint config
{
"plugins": [
"react-hooks"
],
"rules": {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": [
"warn", {
"additionalHooks": "(useRecoilCallback|useRecoilTransaction_UNSTABLE)"
}
]
}
}

每日建置

我們每天會依據目前的 main 分支建置套件,並將其發布為 GitHub 上的 nightly 分支。可透過 npm

npm install https://github.com/facebookexperimental/Recoil.git#nightly

yarn

yarn add https://github.com/facebookexperimental/Recoil.git#nightly

使用或在 package.json 中新增依賴項,並執行 npm installyarn

  "recoil": "facebookexperimental/Recoil.git#nightly",