使用JSS(styled jsx)重組我的部落格樣式

2021-10-01 12:30:57 字數 1746 閱讀 3120

最近在完善之前的專案,看到之前寫的七八個!important是真的煩,於是我個人就一直在想相對於vue的scope來完美解決css的汙染問題,為嘛react中一直沒有一種可以一統天下的方案呢?fb官方是推薦使用的是jss的解決方案,並且也在進行相關方案的研究,相關的解決方案有很多,這裡不一一介紹,主要使用的是zeit出品的styled-jsx來解決。

首先看一下之前結構存在的一些問題。

首先是引入問題,在首頁渲染的部落格頁面,進入文章詳情頁時,如果不在首頁中引入詳情頁的樣式,第一次詳情頁樣式是不會預設重新整理的。這個問題出現的原因大概是和next.js不存在param動態路由有關。

第二個問題就是剛剛說的,react相對於vue最大的問題,就是css的汙染問題,沒有辦法像vue中使用scope去果斷的解決元件樣式與全域性樣式的不同。

第三個問題是編譯打包時,因為直接修改到antd的樣式,導致打包得到的樣式和開發環境下樣式並不統一的問題,這個問題並不是說非要jss才能解決,只是在這個過程中進行了一些修改使得樣式布局更加科學。

外掛程式的使用有些讓人失望,關於styled-jsx的外掛程式,我按照使用最多的兩個,乙個是高亮,乙個是補全,但是配合起來卻有報錯:

[error -9:

29:47pm

](node:

14156

) unhandledpromiserejectionwarning:

typeerror: cannot read property 'kind'

of undefined at isstyledjsxtag

(c:\users\yoga\.vscode\extensions\andrewrazumovsky.

vscode-styled-jsx-languageserver-

1.0.1\server\out\styled-jsx-utils.js:48:

31) at findstyledjsxtaggedtemplate

...

查了一番後,返現issue區好多關於這個問題的反饋,按照解答都試了一下,結果還是沒啥用。

就當放棄補全,多記記api吧

整個重構過程還是遇到了些麻煩,首先是之前就存在的使用很多!important,所以這些肯定是要消滅掉的,接著是在使用antd時更改內建的一些樣式。

關於iconfont,新增樣式時或者要使用div包裹起來,或者要在iconfont上插入樣式,總之直接寫入jss是不行的。

總之,在一些折騰後,得到的效果還是比較滿意的,沒有出現之前有的很多問題,如編譯和開發環境不同等。

如果使用這個的話,我們可以使用scss的特性,包裹起來的話看起來還是比較條例的。

當然要求不高的話,css也足夠了

這其中牽扯到圖床的東西,之前我在波蘭l利用picgo也做了圖床,但是回國之後發現因為網路原因效果特別不好,一方面我在嘗試把github的圖床倉庫往gitee上面遷移,另一方面我也在考慮七牛雲或者阿里oss的相關問題。

這一點定了之後在考慮life模組的設計。

目前可以考慮的是把前台頁面放上去,雖然還有一些漏洞和bug,但是用這幾個月的部落格資料也大體上可以得到初版的效果了。

關於後端和後台,由於目前還在製作,估計需要明天抽出一天時間做一下守衛之類的後端的東西,在時間很緊張的情況下,總覺得來不及實現所有的邏輯,可能得向後面推推了。

最近有些茫然,一方面像檢驗一下自己的學習成果到底如何,另一方面又很迫切的想去彌補基礎的不足,最後又徘徊在非前端技術的困擾和前端專案細節的完善中,可以說是很累心了,哦對了,還有我的科研。。。

因此部落格託更了好幾天了,,,

使用指令碼重簽名

其實不過是xcode簽名步驟在指令碼中進行了 在xcode中直接新增如下指令碼 srcroot 工程檔案所在的目錄 temp path temp 資源資料夾 ipa包路徑 target ipa path ipa 新建temp資料夾 rm rf temp mkdir p temp 1.解壓ipa到te...

如何使用URL Routing 進行URL重寫

什麼是url routing?所謂url routing url路由 指的是在web中,url指向的不再是某個物理檔案,而是乙個說明有關url路由的字串,開發者可以自定義該字串的格式。在預設情況下,url routing在asp.net應用程式中是可以直接使用的,但在asp.net站點上,需要做一些...

mac下使用karabiner重定義鍵盤

mac本很讓人不爽的就是沒有home,end,insert鍵,雖然有其他組合鍵能完成上述功能,但是仍然是不方便。特別是需要在mac下的windows虛擬機器中使用xshell之類的時候,沒有這幾個鍵是萬萬不能的。使用方法詳細介紹見官網。這裡僅給出我的配置 1.先新增私人配置 內容 version 1...