狀態儲存,是指再次載入頁面時還原**狀態。在vue中,我們可以非常便捷地通過標籤實現狀態的儲存,該標籤會快取不活動的元件例項,而不是銷毀它們。但是在react中並沒有這個功能,前端人員又該如何實現狀態儲存呢?接下來我就給大家分享常用的幾個方法。
1、手動儲存狀態
手動儲存狀態,是比較常見的解決方式,可以配合react元件的componentwillunmount生命週期,通過redux之類的狀態管理層對資料進行儲存,通過componentdidmount週期進行資料恢復。
在需要儲存的狀態較少時,這種方式可以比較快地實現我們所需功能,但在資料量大或者情況多變時,手動儲存狀態就會變成一件麻煩事。為了不需要每次都關心如何對資料進行儲存恢復,我們需要研究如何自動儲存狀態。
2、通過路由實現自動狀態儲存(通常使用react-router)
1)重寫元件,可參考react-live-route。重寫可以實現我們想要的功能,但成本也比較高,需要注意對原始功能的儲存,以及多個react-router版本的相容。
2)替換路由庫為react-keeper。完全替換掉路由方案是乙個風險較大的事情,需要較為慎重地考慮。
基於元件現有行為做拓展,可參考react-router-cache-route。如果使用component或者render屬性,都無法避免路由在不匹配時被解除安裝掉的命運。但將children屬性當作方法來使用,我們就有手動控制渲染的行為的可能。
react 實現簡單的前端篩選
專案中經常遇到列表,如顯示一群人或者一些商品的詳情資訊,需要在乙個搜尋框內輸入內容,下面的列表就自動篩選出與輸入內容相匹配的資訊框。實現過程如下 1.在input輸入框中繫結onchange方法,監聽輸入框值的變化,當輸入框的值發生變化時觸發方法 以下用到的ui框架為blueprint,text初始...
前端 學習心得 react2
今天是除夕,首先恭祝大家新年快樂。新年的確是值得開心的,過去一年過得不好就把它拋到後面,過得好就期待新一年過得更好。好了,下面繼續我們的react之旅。我們的介面是有許多簡單元件組成的,就像我們的身體是由各個器官組成的一樣。我們想做乙個可以復用的介面,定義它的名字commentbox,定義這個盒子的...
yield實現狀態儲存
import time deffunc print 123 sum 0 print 6666 yield sum print 7777 yield sum print 8888 yield sumdef fff g func print 這是在ffff函式中 print next g time.sl...