react+webpack項目實際開發(fā)應(yīng)用

react+webpack項目實際開發(fā)應(yīng)用

在《react入門》和《react入門提高》中我講了月洛,react的基礎(chǔ)應(yīng)用,讓大家能夠迅速的上手使用孽锥,但是只是上手使用嚼黔,為什么那么多的人照著我的例子能敲出來,而實際項目中寫起來卻困難重重呢惜辑?原因有三唬涧。

1.知其然不知其所以然,你只會了JSX語法盛撑,卻只能照貓畫虎碎节,卻不知道react背后的基礎(chǔ)知識,如果你連JSX最后會編譯成js都不知道抵卫,或者編譯成的js都讀不懂狮荔,那更不用談靈活擴展和開發(fā)了胎撇。

2.一個項目要想開發(fā)出來僅僅需要只知道react還需要知道很多知識,比如現(xiàn)在很多教程和項目都是webpack構(gòu)建打包的殖氏,如果你不會webpack那么晚树,你甚至連基礎(chǔ)的開發(fā)環(huán)境都配置不出來。當然還有很多react和react周邊的知識雅采,單純一個hello word 或者 幾個函數(shù)和語法的使用介紹是搞不定的爵憎。

? 至少你需要知道一下知識,才能順利的完成一個完整的項目:

? 首先是關(guān)于react的:

? 1.jsx語法

? 2.狀態(tài)

? 3屬性

? 4.組件

? 5.組件生命周期

? 6.事件

? 然后是基礎(chǔ)工作:

? ES6

? bebel編譯

? webpack

? 然后是數(shù)據(jù)交互和保存和常用的功能

? 1.路由

? 2.數(shù)據(jù)交互

? 3.數(shù)據(jù)持久化

3.日常我們看例子的時候很多是“套件化”总滩,很多人都是用 react+flux等纲堵,一旦你不用你就不會了巡雨,還有人使用

引入link方式開發(fā)react,還有人npm去安裝闰渔,還有人用wepack各種技術(shù)組合亂七八糟,五花八門铐望,加上技術(shù)更新快

很多例子都跑步起來了在新的語法下冈涧,即使老的很多時候不得不面對網(wǎng)絡(luò)翻墻的問題。

? 針對這些問題正蛙,我分三部分去說督弓,

? 1.ES6基礎(chǔ)知識

? 箭頭函數(shù)

? class

? 模塊導(dǎo)入導(dǎo)出

? 解釋下jsx編譯后成js的代碼的原理和意思。

? 入門的react小例子

? 2.react生產(chǎn)環(huán)境 注意是生產(chǎn)不是開發(fā)乒验,區(qū)別在于是實際項目而不是演示愚隧,兩者不同。

? npm搭建環(huán)境

? webpack使用

? bebel的使用

? react路由

? react熱插拔

? 組件嵌套和數(shù)據(jù)傳遞

? 3.數(shù)據(jù)交互與持久化

一锻全、ES6基礎(chǔ)速查

? 這里的ES6知識并不是告訴你準確的東西狂塘,而是讓你在一分鐘之內(nèi)了解ES6,讓你順利的學(xué)習(xí)react,而不是耗費精力在細枝末節(jié)上鳄厌,當然ES6絕對是重中之重荞胡,理解react的必備,但是這個教程是讓你迅速上手出活了嚎,而不是教你原理泪漂。

直接上ES6對比ES6

? let ->var

? const ->var 當時不能改,常量

? import 相當于 src

? class ES5里面的 對象

? arr.map函數(shù)

? 箭頭函數(shù) 直接說

([param] [, param]) => {?

? ??statements

}param => expression

() => { ... }// 零個參數(shù)用 () 表示歪泳;

x => { ... }// 一個參數(shù)可以省略 ()萝勤;

(x, y) => { ... }// 多參數(shù)不能省略 ();

好呐伞,我們繼續(xù)回到正題敌卓,模塊化的使用react,前面我們使用過引用react庫的方式荸哟,而實際項目中更常見的方式是我們通過NPM/yarn等假哎,管理項目功能和模塊瞬捕,不多說我們還是從一個最簡單的hello world開始。

二舵抹、react的常用例子

直接上安裝react和相關(guān)環(huán)境肪虎,

npminstall-gcreate-react-app

create-react-apphello-world

cd hello-world

npm ?start

注意,很多教程是從webpack,BabelandESLint等配置開始的惧蛹,其實不用扇救,上面的工作其實就是幫你配置這些,當然了香嗓,你如果能夠了解如何配置更好迅腔,但是現(xiàn)在是學(xué)react所以我盡量不引人新知識,想讓大家會用靠娱。

注意這個是開發(fā)過程沧烈,如果是上線 使用命令

npmrunbuild 最后會將上線文件放到 build文件夾下

大部分時間我們是和app.js打交道,不墨跡開整像云。

1.先看看app.js里面寫的啥锌雀?

classAppextendsComponent{? render(){return(? ? ? ?

hello word

? ? );? } }

我們對比一下之前函數(shù)的寫法

ReactDOM.render(

Hello, world!

,document.getElementById('root'));

注意:推薦大家使用第一種寫法,為什么迅诬?因為第一種寫法有狀態(tài)腋逆,函數(shù)的寫法沒有。后面我們會說為什么侈贷。

我們繼續(xù)折騰app.js

2.下面我們說下惩歉,在react中的屬性使用

classAppextendsComponent{? render(){return(? ? ? ?

{this.props.index}

? ? );? } }ReactDOM.render(? ? //注意自封閉,txt就是屬性document.getElementById('div1'););

3.下面說一下個對應(yīng)第一個第一篇文章的狀態(tài)管理俏蛮。先看代碼

classAppextendsComponent{? ? constructor(){super();//不用你理解撑蚌,你只要記住一件事 super調(diào)用父類的構(gòu)造器,使用this的話必須先執(zhí)行它嫁蛇。this.state = {? ? ? ? ? ? ? name:'尼古拉斯·屌·大彬哥'? ? ? ? ? };? ? }? ? update(e){this.setState({? ? ? ? ? name:e.target.value? ? ? ? ? });? ? }? ? render(){return(? ? ? ? ?


{this.state.name}


? ? ? );? ? } }

4.多個組件嵌套 App 這個組件里面嵌套著 Widget

importReact, { Component } from'react';classAppextendsComponent{constructor(){super();//不用你理解锨并,你只要記住一件事 super調(diào)用父類的構(gòu)造器,使用this的話必須先執(zhí)行它睬棚。this.state = {? ? ? ? ? ? ? txt:''};this.update =this.update.bind(this);? ? }? ? update(e){this.setState({? ? ? ? ? ? txt:e.target.value? ? ? ? });? ? }? ? render(){return(? ? ? ?


? ? ? );? ? } }const Widget = (props) => {return(? ? ?


{props.txt}


? ? );}exportdefaultApp;

5.作為例子肯定少不了列表循環(huán)

classAppextendsComponent{constructor(){super();//不用你理解第煮,你只要記住一件事 super調(diào)用父類的構(gòu)造器,使用this的話必須先執(zhí)行它抑党。this.state = {data:[? ? ? ? ? ? ? {name:"leo",age:18},? ? ? ? ? ? ? {name:"alice",age:19},? ? ? ? ? ? ? {name:"blue",age:17},? ? ? ? ? ? ? ]? ? ? ? ? };? ? }? ? render(){letrows =this.state.data.map(person=>{return});? ? ? return (

rows

);? ? } }const PersonRow = (props)=>{? return (

{props.data.name}-----{props.data.age}

);}

三包警、實際項目生產(chǎn)環(huán)境搭建

四、webpack的配置和使用

五底靠、react 模塊路由 組件嵌套等害晦。

六、數(shù)據(jù)交互和持久化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市壹瘟,隨后出現(xiàn)的幾起案子鲫剿,更是在濱河造成了極大的恐慌,老刑警劉巖稻轨,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵莲,死亡現(xiàn)場離奇詭異,居然都是意外死亡殴俱,警方通過查閱死者的電腦和手機政冻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來线欲,“玉大人明场,你說我怎么就攤上這事±罘幔” “怎么了苦锨?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嫌套。 經(jīng)常有香客問我逆屡,道長圾旨,這世上最難降的妖魔是什么踱讨? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮砍的,結(jié)果婚禮上痹筛,老公的妹妹穿的比我還像新娘。我一直安慰自己廓鞠,他們只是感情好帚稠,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著床佳,像睡著了一般滋早。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砌们,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天杆麸,我揣著相機與錄音,去河邊找鬼浪感。 笑死昔头,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的影兽。 我是一名探鬼主播揭斧,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峻堰!你這毒婦竟也來了讹开?” 一聲冷哼從身側(cè)響起盅视,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旦万,沒想到半個月后左冬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡纸型,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年拇砰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狰腌。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡除破,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琼腔,到底是詐尸還是另有隱情瑰枫,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布丹莲,位于F島的核電站光坝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甥材。R本人自食惡果不足惜盯另,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洲赵。 院中可真熱鬧鸳惯,春花似錦、人聲如沸叠萍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苛谷。三九已至辅鲸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腹殿,已是汗流浹背独悴。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赫蛇,地道東北人绵患。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像悟耘,于是被迫代替她去往敵國和親落蝙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

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

  • react+webpack項目實際開發(fā)應(yīng)用 在《react入門》和《react入門提高》中我講了,react的基礎(chǔ)...
    陽陽陽一堆陽閱讀 352評論 0 0
  • 最近看了一本關(guān)于學(xué)習(xí)方法論的書筏勒,強調(diào)了記筆記和堅持的重要性移迫。這幾天也剛好在學(xué)習(xí)React,所以我打算每天堅持一篇R...
    gaoer1938閱讀 1,690評論 0 5
  • 目前管行,react組件有三種寫法厨埋,分別是es5的createClass寫法,es6的class寫法捐顷,以及statel...
    ZoomFunc閱讀 1,681評論 0 1
  • 今天最主要的工作是開會荡陷,聽杭州來的一位大神開會。 今天主要講了要上市的基礎(chǔ)迅涮,規(guī)范和利潤废赞。這位大神是做財務(wù)的,注冊會...
    羅召偉閱讀 430評論 0 9
  • 按:清明節(jié)假期給教會家庭營會的外國講員做口譯叮姑,第一場講稿實錄唉地,留存并分享。 The below article i...
    joyli閱讀 1,464評論 0 1