01_vue和react的安裝

本系列文集將對Vue.js和ReactJS同時進行記錄券盅,基本的語法將會忽略,重點放在實現(xiàn)上,例如同一個功能會分別采用Vue.js和ReactJS各做一次實現(xiàn)。

對于javascript(簡稱JS)或者JS的框架而言修噪,沒有安裝的概念查库,因為所有的JS文件只要下載到本機路媚,就可以直接使用(不需要做任何預(yù)處理就可以直接被HTML調(diào)用)。部分框架依賴于大量的其他JS組件樊销,這些JS組件都是一個單一或者有結(jié)構(gòu)的文件整慎,所謂的安裝就是把這些個框架依賴的包給整合在一起使其能正常的運行不報錯。

JS的框架或組件庫非常豐富以至于僅僅是管理和組織這些個庫文件就要花一些時間围苫,因此出現(xiàn)了npm這個包管理器裤园,然而這個包管理器需要依賴nodejs,因此做前端nodejs應(yīng)該是必裝的剂府。

這里采用了兩種方式來"安裝"拧揽,第一種是手動安裝,第二種是通過npm進行安裝腺占;兩種安裝方式在項目開發(fā)過程中只要選擇其中一種即可淤袜,這里只是為了記錄各種不同的安裝方式。

手動安裝 vue.js

官網(wǎng)下載一個的vue.js文件(開發(fā)版本)衰伯,放到html能識別和加載到的目錄就已完成了安裝铡羡。

  1. 創(chuàng)建開發(fā)目錄
C:\>mkdir %userprofile%\Desktop\projectWithVue
  1. 手動vue.js文件并放入到projectWithVue目錄中
  2. 在projectWithVue目錄中創(chuàng)建一個html文件
  3. 撰寫如下代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>

<div id="hello">
    {{ message }}
</div>

<script>
    var demo = new Vue({
        el: '#hello',
        data: {
            message: 'Hello Vue.js!'
        }
    })
</script>
</body>
</html>

手動安裝 react.js

官網(wǎng)下載react.jsreact-dom.js文件(右鍵鏈接另存為),放到html能識別和加載到的目錄就已完成了安裝意鲸。

  1. 創(chuàng)建開發(fā)目錄
C:\>mkdir %userprofile%\Desktop\projectWithReact
  1. 手動react.js和react-dom.js文件并放入到projectWithReact目錄中
  2. 在projectWithReact目錄中創(chuàng)建一個html文件
  3. 撰寫如下代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="react.js"></script>
    <script src="react-dom.js"></script>
</head>
<body>

<div id="hello"></div>

<script>
    const element = React.createElement('span', {}, 'Hello React.js!');
    ReactDOM.render(
      element,
      document.getElementById('hello')
    );
</script>
</body>
</html>

使用npm來安裝Vue.js

  1. 安裝在當前目錄
[root@localhost ~]# npm install vue
/root
└── vue@2.2.4 

[root@localhost ~]# ls
anaconda-ks.cfg  node_modules

[root@localhost ~]# tree node_modules/
node_modules/
└── vue
    ├── dist
    │   ├── README.md
    │   ├── vue.common.js
    │   ├── vue.common.min.js
    │   ├── vue.esm.js
    │   ├── vue.js
    │   ├── vue.min.js
    │   ├── vue.runtime.common.js
    │   ├── vue.runtime.esm.js
    │   ├── vue.runtime.js
    │   └── vue.runtime.min.js
    ├── LICENSE
    ├── package.json
    ├── README.md
...
...
...
  1. 安裝在系統(tǒng)默認的Path中(全局安裝)
[root@localhost ~]# npm install vue --global
/usr/lib
└── vue@2.2.4 

[root@localhost ~]# ls /usr/lib/
... ... ... node_modules ... ... ...

[root@localhost ~]# ls /usr/lib/node_modules/
npm  vue

使用npm來安裝ReactJS

  1. 安裝在當前目錄
[root@localhost ~]# npm install react react-dom
/root
├── react@15.4.2 
└─┬ react-dom@15.4.2 
  ├─┬ fbjs@0.8.9 
  │ ├── core-js@1.2.7 
  │ ├─┬ isomorphic-fetch@2.2.1 
  │ │ ├─┬ node-fetch@1.6.3 
  │ │ │ ├─┬ encoding@0.1.12 
  │ │ │ │ └── iconv-lite@0.4.15 
  │ │ │ └── is-stream@1.1.0 
  │ │ └── whatwg-fetch@2.0.3 
  │ ├─┬ promise@7.1.1 
  │ │ └── asap@2.0.5 
  │ ├── setimmediate@1.0.5 
  │ └── ua-parser-js@0.7.12 
  ├─┬ loose-envify@1.3.1 
  │ └── js-tokens@3.0.1 
  └── object-assign@4.1.1 
  
[root@localhost ~]# ls node_modules/
asap     encoding  iconv-lite        is-stream  loose-envify  object-assign  react      setimmediate  vue
core-js  fbjs      isomorphic-fetch  js-tokens  node-fetch    promise        react-dom  ua-parser-js  whatwg-fetch
  1. 安裝在系統(tǒng)默認的Path中(全局安裝)
[root@localhost ~]# npm install react react-dom --global
/usr/lib
├─┬ react@15.4.2 
│ ├─┬ fbjs@0.8.9 
│ │ ├── core-js@1.2.7 
│ │ ├─┬ isomorphic-fetch@2.2.1 
│ │ │ ├─┬ node-fetch@1.6.3 
│ │ │ │ ├─┬ encoding@0.1.12 
│ │ │ │ │ └── iconv-lite@0.4.15 
│ │ │ │ └── is-stream@1.1.0 
│ │ │ └── whatwg-fetch@2.0.3 
│ │ ├─┬ promise@7.1.1 
│ │ │ └── asap@2.0.5 
│ │ ├── setimmediate@1.0.5 
│ │ └── ua-parser-js@0.7.12 
│ ├─┬ loose-envify@1.3.1 
│ │ └── js-tokens@3.0.1 
│ └── object-assign@4.1.1 
└─┬ react-dom@15.4.2 
  ├─┬ fbjs@0.8.9 
  │ ├── core-js@1.2.7 
  │ ├─┬ isomorphic-fetch@2.2.1 
  │ │ ├─┬ node-fetch@1.6.3 
  │ │ │ ├─┬ encoding@0.1.12 
  │ │ │ │ └── iconv-lite@0.4.15 
  │ │ │ └── is-stream@1.1.0 
  │ │ └── whatwg-fetch@2.0.3 
  │ ├─┬ promise@7.1.1 
  │ │ └── asap@2.0.5 
  │ ├── setimmediate@1.0.5 
  │ └── ua-parser-js@0.7.12 
  ├─┬ loose-envify@1.3.1 
  │ └── js-tokens@3.0.1 
  └── object-assign@4.1.1 
  
  
[root@localhost ~]# ls /usr/lib/node_modules/
npm  react  react-dom  vue

運行npm安裝的項目

Vue.js

  1. 初始化開發(fā)環(huán)境
# 安裝vue-cli命令行項目管理工具
[root@localhost ~]# npm install --global vue-cli
# 創(chuàng)建一個基于 webpack 模板的新項目烦周,會有交互提示,全部yes即可.
[root@localhost ~]# vue init webpack my-project
# 進入項目文件
[root@localhost ~]# cd my-project
# 安裝項目依賴組件
[root@localhost my-project]# npm install
# 運行項目
[root@localhost ~]# npm run dev
  DONE  Compiled successfully in 3295ms    1:05:05 AM
> Listening at http://localhost:8080

ReactJS

  1. 初始化開發(fā)環(huán)境
# 安裝react命令行項目管理工具
[root@localhost ~]# npm install -g create-react-app
# 創(chuàng)建一個項目
[root@localhost ~]# create-react-app hello-world
# 進入該項目
[root@localhost ~]# cd hello-world
# 啟動項目
[root@localhost hello-world]# npm start
Starting the development server...

Compiled successfully!

The app is running at:

  http://localhost:3000/

Note that the development build is not optimized.
To create a production build, use npm run build.
  1. 訪問項目頁面(http://localhost:3000)
ReactJS

Webpack

上面通過npm安裝Vue.js和ReactJS庫怎顾、初始化項目和運行項目读慎,采用的是webpack進行多js文件合并、混淆和壓縮槐雾,通過這種方式可以保護前端源碼的接口暴露夭委。
也就是說在撰寫Vue.js和ReactJS項目時多個JS文件都會被編譯成一個bindle.js文件。

注意事項

盡量避免全局安裝項目依賴組件

在過去用react-native蚜退、reactjs闰靴、vue時,大部分的安裝教程文檔都沒有帶--global參數(shù)钻注,當時也沒考慮那么多蚂且,只是覺得每次創(chuàng)建一個項目都要等好久,每次項目代碼根目錄總是會有node_module這個目錄且這個目錄下面非常多的js三方庫幅恋。
今天回想起在Python編程語言中杏死,一直在強調(diào)建議在項目中使用virtualenv,原因是每個項目依賴的第三方組件也許是相同的,但是版本有可能會不同淑翼,這會導(dǎo)致多個項目在使用同一個python編譯器的時候造成第三方組件版本不同無法正常運行腐巢。
回過來看的話,js也是一樣的玄括,項目依賴的第三方Js庫冯丙,在用npm安裝時不能帶--global,而一些通用管理類的第三方JS庫則建議用--global遭京,例如:gulp胃惜,webpackage, Browserify 等哪雕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末船殉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斯嚎,更是在濱河造成了極大的恐慌利虫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堡僻,死亡現(xiàn)場離奇詭異糠惫,居然都是意外死亡,警方通過查閱死者的電腦和手機苦始,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門寞钥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陌选,你說我怎么就攤上這事理郑。” “怎么了咨油?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵您炉,是天一觀的道長。 經(jīng)常有香客問我役电,道長赚爵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任法瑟,我火速辦了婚禮冀膝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霎挟。我一直安慰自己窝剖,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布酥夭。 她就那樣靜靜地躺著赐纱,像睡著了一般脊奋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疙描,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天诚隙,我揣著相機與錄音,去河邊找鬼起胰。 笑死久又,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的待错。 我是一名探鬼主播籽孙,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼火俄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讲冠,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤瓜客,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后竿开,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谱仪,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年否彩,在試婚紗的時候發(fā)現(xiàn)自己被綠了疯攒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡列荔,死狀恐怖敬尺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贴浙,我是刑警寧澤砂吞,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站崎溃,受9級特大地震影響蜻直,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袁串,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一概而、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧囱修,春花似錦赎瑰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽配名。三九已至,卻和暖如春晋辆,著一層夾襖步出監(jiān)牢的瞬間渠脉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工瓶佳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芋膘,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓霸饲,卻偏偏與公主長得像为朋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厚脉,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

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