對(duì)學(xué)習(xí)react的一些思考敌厘。
最近在做react技術(shù)棧的一個(gè)博客系統(tǒng)讽坏,用到react+redux+router+server si?de rendering+material UI眉孩,當(dāng)然還有webpack構(gòu)建工具。翻來(lái)覆去意乓,從一開始啥也不會(huì)拆檬,對(duì)redux概念非常模糊,到能熟悉掌握屡贺,調(diào)試啊蠢棱,查文檔啊,能得心應(yīng)手烹笔。
學(xué)會(huì)了如何查找英文資料裳扯,這是最大的信心,不會(huì)再害怕看英文文章了谤职。還有學(xué)會(huì)如何針對(duì)性地查找問(wèn)題饰豺,能使用stack overflow提問(wèn),翻GitHub issue允蜈,用git管理自己的文件冤吨,還有GitHub 使用等等。不只是編碼饶套,更學(xué)會(huì)了一種能力漩蟆,即是如何發(fā)現(xiàn)問(wèn)題,解決問(wèn)題的能力妓蛮,也是一個(gè)大的進(jìn)步怠李。
有待加強(qiáng)的是“輸入輸出能力”,不僅技術(shù)上要進(jìn)步,技術(shù)以外的也要進(jìn)步捺癞。學(xué)會(huì)表達(dá)自己的想法夷蚊,寫技術(shù)博文,也要學(xué)習(xí)別人的思考髓介,貢獻(xiàn)社區(qū)惕鼓,整理好文章,關(guān)注好的博主唐础。學(xué)習(xí)箱歧,不只是技,還有道一膨。作為一個(gè)想做程序員的大學(xué)生呀邢,要思考,要有視野汞幢,要有決心驼鹅。
同構(gòu)思考
回到項(xiàng)目本身,這個(gè)項(xiàng)目遇到一個(gè)困難:css的使用森篷。使用css module使用webpack可以打包樣式文件输钩,在客戶端這是沒(méi)有問(wèn)題的,只要加載打包文件就好仲智,但尷尬的是服務(wù)端渲染做同構(gòu)應(yīng)用是沒(méi)法識(shí)別樣式文件的买乃,還有一個(gè)開發(fā)環(huán)境下熱加載問(wèn)題〉隽荆看老外一個(gè)博客解決了這個(gè)問(wèn)題剪验,但是適應(yīng)的依賴工具postcss新版本下不能用了,求助其他方法也不能很好解決我的項(xiàng)目上的問(wèn)題前联,只能先放一放功戚,以后再來(lái)探究這個(gè)問(wèn)題。
轉(zhuǎn)而使用CSS in js思路似嗤,inline style雖說(shuō)是舊有的工程意識(shí)中要竭力避免的啸臀,畢竟前端發(fā)展到現(xiàn)在,樣式結(jié)構(gòu)要分離是早已成共識(shí)烁落。但是乘粒,組件化的開發(fā)模式下,這個(gè)是有可取之處的伤塌,一個(gè)組件對(duì)應(yīng)一個(gè)樣式灯萍,全是json格式,用style屬性導(dǎo)入就好每聪。雖然也有問(wèn)題旦棉,如偽類就不好做齿风,還有基于class樣式變化的動(dòng)畫不好做(我還沒(méi)深入探究這個(gè))。但滿足我這個(gè)項(xiàng)目是足夠的绑洛,況且material也是inline style的聂宾,非常適用。
前兩天分別解決了服務(wù)端router和redux使用诊笤,開發(fā)模式熱加載,調(diào)試工具巾陕,整個(gè)項(xiàng)目已經(jīng)具備一個(gè)合格的骨架讨跟,以后也能當(dāng)模版復(fù)用,而且服務(wù)端渲染性能好鄙煤,便于開發(fā)大應(yīng)用晾匠。今天又踩了一波css的坑,收獲了經(jīng)驗(yàn)梯刚,接下來(lái)就可以設(shè)計(jì)數(shù)據(jù)流和樣式了凉馆,這兩天早日完成第一版,再詳細(xì)分析下這個(gè)項(xiàng)目亡资。加油澜共!
集合一些文章來(lái),關(guān)于React技術(shù)棧的同構(gòu)應(yīng)用的思考锥腻。
React: Server-side rendering and hot reloading