您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 youtube官網網頁版更新時間日歷插件vue(vue 時間插件 laydate 后端怎么獲取時間)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-17 23:49:29【】3人已围观

简介p>要安裝Pinia,您可以在終端中運行以下命令:該版本與Vue3兼容,如果你正在尋找與Vue2.x兼容的版本,請查看v1分支。Pinia是一個圍繞Vue3CompositionAPI的封裝器。因此,

p> 要安裝 Pinia,您可以在終端中運行以下命令:

該版本與Vue 3兼容,如果你正在尋找與Vue 2.x兼容的版本,請查看v1分支。

Pinia是一個圍繞Vue 3 Composition API的封裝器。因此,你不必把它作為一個插件來初始化,除非你需要Vue devtools支持、SSR支持和webpack代碼分割的情況:

在上面的片段中,你將Pinia添加到Vue.js項目中,這樣你就可以在你的代碼中使用Pinia的全局對象。

為了創建一個store,你用一個包含創建一個基本store所需的states、actions和getters的對象來調用 defineStore 方法。

Vuex 也很容易設置,需要安裝和創建store。

要安裝Vuex,您可以在終端中執行以下命令:

要創建store,你可以使用包含創建基本store所需的states、actions和 getter 的對象調用 createStore 方法:

要訪問 Vuex 全局對象,需要在 Vue.js 項目根文件中添加 Vuex,如下所示:

使用 Pinia,可以按如下方式訪問該store:

請注意,在訪問其屬性時省略了 store 的 state 對象。

使用Vuex,可以按如下方式訪問store:

這兩個狀態管理庫都相當容易學習,因為它們在 YouTube 和第三方博客上都有很好的文檔和學習資源。對于以前有使用 Rex、MobX、Re買粉絲il 等 Flux 架構庫經驗的開發人員來說,他們的學習曲線更容易。

這兩個庫的文檔都很棒,并且以對經驗豐富的開發人員和新開發人員都友好的方式編寫。

Pinia和Vuex都非常快,在某些情況下,使用Pinia的web應用程序會比使用Vuex更快。這種性能的提升可以歸因于Pinia的極輕的重量,Pinia體積約1KB。

盡管Pinia是在Vue devtools的支持下建立的,但由于Vue devtools沒有暴露出必要的API,所以一些功能如時間旅行和編輯仍然不被支持。當開發速度和調試對你的項目來說更重要時,這是值得注意的。

Pinia 將這些與 Vuex 3 和 4 進行了比較:

這些是Pinia在其狀態管理庫和Vuex之間的比較中提出的額外見解:

將 Pinia 2(目前處于 alpha 階段)與 Vuex 進行比較,我們可以推斷出 Pinia 領先于 Vuex 4。

Vue.js核心團隊為Vuex 5制定了一個開放的RFC,類似于Pinia使用的RFC。目前,Vuex通過RFC來盡可能多地收集社區的反饋。希望Vuex 5的穩定版本能夠超越Pinea 2。

據同時也是 Vue.js 核心團隊成員并積極參與 Vuex 設計的 Pinia 的創建者(Eardo San Martin Morote)所說,Pania 和 Vuex 的相似之處多于不同之處:

盡管 Pinia 足以取代 Vuex,但取代 Vuex 并不是它的目標,因此 Vuex 仍然是 Vue.js 應用程序的推薦狀態管理庫。

根據我的個人經驗,由于Pinea是輕量級的,體積很小,它適合于中小型應用。它也適用于低復雜度的Vue.js項目,因為一些調試功能,如時間旅行和編輯仍然不被支持。

將 Vuex 用于中小型 Vue.js 項目是過度的,因為它重量級的,對性能降低有很大影響。因此,Vuex 適用于大規模、高復雜度的 Vue.js 項目。

批處理是 React將多個狀態更新分組到單個重新渲染中以獲得更好的性能。

例如,如果你在同一個點擊事件中有兩個狀態更新,React 總是將它們分批處理到一個重新渲染中。如果你運行下面的代碼,你會看到每次點擊時,React 只執行一次渲染,盡管你設置了兩次狀態:

這對性能非常有用,因為它避免了不必要的重新渲染。它還可以防止你的組件呈現僅更新一個狀態變量的“半完成”狀態,這可能會導致錯誤。

這可能會讓你想起餐廳服務員在你選擇第一道菜時不會跑到廚房,而是等你完成訂單。

然而,React 的批量更新時間并不一致。例如,如果你需要獲取數據,然后更新handleClick上面的狀態,那么 React不會批量更新,而是執行兩次獨立的更新。

這是因為 React 過去只在瀏覽器事件(如點擊)期間批量更新,但這里我們在事件已經被處理(在 fetch 回調中)之后更新狀態:

在 React 18 之前,我們只在 React 事件處理程序期間批量更新。默認情況下,React 中不會對 promise、setTimeout、本機事件處理程序或任何其他事件中的更新進行批處理。

從 React 18 開始createRoot,所有更新都將自動批處理,無論它們來自何處。

這意味著超時、承諾、本機事件處理程序或任何其他事件內的更新將以與 React 事件內的更新相同的方式進行批處理。

我們希望這會導致更少的渲染工作,從而在你的應用程序中獲得更好的性能:

注意:作為采用 React 18 的一部分,預計你將升級到createRoot。舊行為的render存在只是為了更容易地對兩個版本進行生產實驗。

無論更新發生在何處,React 都會自動批量更新,因此:

行為與此相同:

通常,批處理是安全的,但某些代碼可能依賴于在狀態更改后立即從 DOM 中讀取某些內容。對于這些用例,你可以使用ReactDOM.flushSync()選擇退出批處理:

2、Suspense 的 SSR 支持

這基本上是服務器端渲染 (SSR) 邏輯的擴展。在典型的 React SSR 應用程序中,會發生以下步驟:

典型 SSR 應用程序的問題在于,在下一步可以開始之前,必須立即完成整個應用程序的每個步驟。這會使您的應用程序在初始加載時變慢且無響應。

React 18 正試圖解決這個問題。 組件已經以這樣的方式進行了革命性的改變,它將應用程序分解為更小的獨立單元,這些單元經過提到的每個步驟。這樣一旦用戶看到內容,它就會變成互動的。

我們將狀態更新分為兩類:

單擊、懸停、滾動或打字等緊急更新需要立即響應以匹配我們對物理對象行為方式的直覺。否則他們會覺得“錯了”。

然而,轉換是不同的,因為用戶不希望在屏幕上看到每個中間值。

例如,當您在下拉列表中選擇過濾器時,您希望過濾器按鈕本身在您單擊時立即響應。但是,實際結果可能會單獨轉換。

一個小的延遲是難以察覺的,而且通常是預料之中的。如果在結果渲染完成之前再次更改過濾器,您只關心看到最新的結果。

在典型的 React 應用程序中,大多數更新在概念上都是過渡更新。但出于向后兼容性的原因,過渡是可選的。

默認情況下,React 18 仍然將更新處理為緊急更新,您可以通過將更新包裝到startTransition.

構建流暢且響應迅速的應用程序并不總是那么容易。有時,諸如單擊按鈕或輸入輸入之類的小動作可能會導致屏幕上發生很多事情。這可能會導致頁面在所有工作完成時凍結或掛起。

例如,考慮在過濾數據列表的輸入字段中鍵入。您需要將字段的值存儲在 state 中,以便您可以過濾數據并控制該輸入字段的值。您的代碼可能如下所示:

在這里,每當用戶鍵入一個字符時,我們都會更新輸入值并使用新值來搜索列表并顯示結果。

對于大屏幕更新,這可能會導致頁面在呈現所有內容時出現延遲,從而使打字或其他交互感覺緩慢且無響應。

即使列表不是太長,列表項本身也可能很復雜并且每次擊鍵時都不同,并且可能沒有明確的方法來優化它們的呈現。

從概念上講,問題在于需要進行兩種不同的更新。第一個更新是緊急更新,用于更改輸入字段的值,以及可能會更改其周圍的一些 UI。

第二個是顯示搜索結果的不太緊急的更新。

用戶希望第一次更新是即時的,因為這些交互的本機瀏覽器處理速度很快。但是第二次更新可能會有點延遲。

用戶不希望它立即完成,這很好,因為可能有很多工作要做。(實際上,開發人員經常使用去抖動等技術人為地延遲此類更新。)

在 React 18 之前,所有更新都被緊急渲染。

這意味著上面的兩個狀態仍然會同時呈現,并且仍然會阻止用戶看到他們交互的反饋,直到一切都呈現出來。我們缺少的是一種告訴 React 哪些更新是緊急的,哪些不是的方法。

新startTransitionAPI 通過讓您能夠將更新標記為“轉換”來解決此問題:

包裝在其中的更新startTransition被視為非緊急處理,如果出現更緊急的更新(如點擊或按鍵),則會中斷。

如果用戶中斷轉換(例如,連續輸入多個字符),React 將拋出未完成的陳舊渲染工作,僅渲染最新更新。

Transitions 可讓您保持大多數交互敏捷,即使它們導致顯著的 UI 更改。它們還可以讓您避免浪費時間渲染不再相關的內容。

上述問題的一個常見解決方案是將第二次更新包裝在 setTimeout 中:

這將延遲第二次更新,直到呈現第一次更新之后。節流和去抖動是這種技術的常見變體。

一個重要的區別是startTransition不安排在以后喜歡的setTimeout是。它立即執行。傳遞給的函數startTransition同步運行,但其中的任何更新都標記為“轉換”。

React 將在稍后處理更新時使用此信息來決定如何呈現更新。這意味著我們比在超時中包裝更新更早地開始呈現更新。

在快速設備上,兩次更新之間的延遲非常小。在較慢的設備上,延遲會更大,但 UI 會保持響應。

另一個重要的區別是 a 內的大屏幕更新setTimeout仍然會鎖定頁面,只是在超時之后。

如果用戶在超時觸發時仍在鍵入或與頁面交互,他們仍將被阻止與頁面交互。但是標記為 的狀態

很赞哦!(5)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:辽宁阜新阜新蒙古族自治县

工作室:小组

Email:[email protected]