React with ASP.NET Core

1. 新建一個(gè)mvc項(xiàng)目(dotnet new mvc 然后 dotnet restore 運(yùn)行dotnet run看是否能正常打開)

2. npm init

3. 替換package.json:

{??

"version": "1.0.0",??"name": "asp.net",??"private": true,??"dependencies": {????"react": "16.4.1",????"react-dom": "16.4.1"??},???"devDependencies": {????"webpack": "4.15.1",????"webpack-cli": "3.0.8",?????"aspnet-webpack": "3.0.0",????"webpack-dev-middleware": "3.1.3",?????"babel-loader": "7.1.5",????"babel-preset-react": "6.24.1",????"babel-preset-env": "1.7.0",????"babel-core": "6.26.3"??}

}

4. npm install

5. 新建Scripts文件夾扰她,并建立HelloWorld


6. 新建 entry


7. 配置webpack.config.js


8. 運(yùn)行webpack獲取打包后的js娩贷,并引入該js:


9. 再次運(yùn)行dotnet run:


使用TypeScript:

1.用vs2017打開項(xiàng)目,右擊項(xiàng)目,點(diǎn)擊Properties粒褒,設(shè)置如下

*Visual Studio和webpack都會編譯typescript文件(每個(gè)文件會被編譯兩次斤寂,同事vs會編譯沒被用來打包的ts文件)耿焊。我們可以設(shè)置不要讓vs編譯ts文件,但是這樣的結(jié)果就是我們在編輯文件時(shí)也不會有對應(yīng)的檢查遍搞。如果不需要使用vs的ts檢查的話可以在Project > Edit [Project name].csproj中加入如下配置

<PropertyGroup>

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

</PropertyGroup>

2. 將jsx改為tsx


3. 更新package.json (npm install)和 webpack.config.js支持ts



4. 添加tsconfig


5. 再次運(yùn)行webpack罗侯,獲取編譯后文件


添加Redux

1. 更新package.json


2. 在Scritps文件夾下添加redux-actions.tsx


3. 添加redux-reducers.tsx


4. 修改entry.tsx文件


5. 添加async-thunks.ts


6. 改寫HelloWorld.tsx


7. webpack一下,然后在dotnet run


8. 添加接口


9. 修改async-thunks文件



10. 再次webpack溪猿,然后運(yùn)行dotnet run


Server side Rendering:

1.緊接著上文钩杰,在package.json中添加以下包文件,再npm install 一下

2.更新retrieveData方法


這個(gè)方法負(fù)責(zé)從服務(wù)器端獲取數(shù)據(jù)诊县,客戶端或者服務(wù)器端渲染皆可讲弄。addTask用來把異步請求放入集合中以便服務(wù)器端渲染的時(shí)候會在最后渲染之前等待所有的異步請求完成,否則在渲染的時(shí)候我們就無法確保獲取到了所需的數(shù)據(jù)翎冲。

3. 添加文件:entry-server.tsx? (asp.net core會請求這個(gè)入口文件)

4.修改客戶端用到的入口文件:entry:tsx


5. 修改webpack config文件垂睬,確保其能創(chuàng)建用戶客戶端&服務(wù)器端渲染的bundle文件


這樣改動之后webpack會生成2個(gè)文件,客戶端端渲染(wwwroot/dist 中的 bundle.js),服務(wù)器端渲染 Scripts/Dist 中的bundle-server.js)

6.運(yùn)行webpack


7. 修改_ViewImports.cshtml驹饺,添加taghelper


8. 修改Index文件


9.瀏覽器設(shè)置禁用js


10. 運(yùn)行dotnet run查看


可以看到還是能正常渲染

11. 修改index文件钳枕,看不使用prerendering會如何


12. 刷新頁面


可以看到因?yàn)閖s被block住了而且又沒有使用prerendering,頁面不顯示


Reference:?https://alanocoder.com/react-get-started-with-asp-net-core-using-visual-studio/

https://github.com/wuzinong/JsLearning/tree/master/DotNetCoreSingleApplication/SSR-REACT

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赏壹,一起剝皮案震驚了整個(gè)濱河市鱼炒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝌借,老刑警劉巖昔瞧,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異菩佑,居然都是意外死亡自晰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門稍坯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酬荞,“玉大人,你說我怎么就攤上這事瞧哟』烨桑” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵勤揩,是天一觀的道長咧党。 經(jīng)常有香客問我,道長陨亡,這世上最難降的妖魔是什么傍衡? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮数苫,結(jié)果婚禮上聪舒,老公的妹妹穿的比我還像新娘。我一直安慰自己虐急,他們只是感情好箱残,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著止吁,像睡著了一般被辑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敬惦,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天盼理,我揣著相機(jī)與錄音,去河邊找鬼俄删。 笑死宏怔,一個(gè)胖子當(dāng)著我的面吹牛奏路,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臊诊,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼鸽粉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抓艳?” 一聲冷哼從身側(cè)響起触机,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玷或,沒想到半個(gè)月后儡首,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偏友,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年蔬胯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片约谈。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笔宿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棱诱,到底是詐尸還是另有隱情,我是刑警寧澤涝动,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布迈勋,位于F島的核電站,受9級特大地震影響醋粟,放射性物質(zhì)發(fā)生泄漏靡菇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一米愿、第九天 我趴在偏房一處隱蔽的房頂上張望厦凤。 院中可真熱鬧,春花似錦育苟、人聲如沸较鼓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽博烂。三九已至,卻和暖如春漱竖,著一層夾襖步出監(jiān)牢的瞬間禽篱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工馍惹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留躺率,地道東北人玛界。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像悼吱,于是被迫代替她去往敵國和親脚仔。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容