vue.js 是一個客戶端js庫,能夠用來開發單頁應用。爲了一個項目的選型,我前先後後的看了angular、react、vuejs ,對前二者是佩服,對後者是愛。由於它簡潔乾淨利索,而且還有高大上的web components實現。即便文檔很少,我也願意選擇它。接下來,咱們首先創建一個開始的項目,而且擼一遍開發過程當中涉及到的概念和組件。css
稍微像樣一點的vuejs的開發過程幾乎老是搭配webpack、babel一塊兒的,喜歡從頭hack的人,我告訴你配置是極爲繁瑣的,幸虧vue.js 提供了一個工具,叫作vue-cli 。可用於快速搭建單頁應用起步代碼。只需一分鐘便可啓動經常使用的開發特性:html
可用的腳手架代碼。前端
熱重載。組件代碼更新後自動從新加載vue
靜態代碼檢查。node
ES6語言特性react
咱們須要使用vue-cli來建立一個腳手架項目。webpack
$ npm install -g vue-cligit
個人版本是程序員
$ node -vgithub
v5.0.0
$ npm -v
3.10.6
不少問題若是出現,可能和版本有關,建議和我一致 。
執行:
$ vue init webpack my-project
第二個參數webpack,指明建立一個基於 「webpack」 模板的vuejs項目。此模板會建立一個webpack的腳手架代碼。
然而,webpack是啥?它自己是一個打包工具,能夠把js、css、image打包成一個或者多個js文件,而且能夠支持各類loader做爲插件對不一樣類型的文件作轉換處理。實際上webpack就是經過插件vue-loader在加載vue類型的文件時作格式轉換,把vue類型文件翻譯爲瀏覽器能夠識別的js文件。
中國用戶注意:vue init命令使用了npm, npm的倉庫常常緩慢或者被阻斷,可使用國內鏡像,只要編輯 ~/.npmrc 加入下面內容:
registry = https://registry.npm.taobao.org
這個的作法能夠快得多。
當前可使用的模板有:
webpack - 經過webpack和vue-loader插件,能夠調用babel把.vue文件編譯爲客戶端能夠識別的js文件。默認還能夠提供熱加載、代碼檢查、測試。
webpack-simple - 最簡單的webpack和vue-loader插件。
browserify - 經過Browserify + vueify 的組合,能夠調用babel把.vue文件編譯爲客戶端能夠識別的js文件。默認還能夠提供熱加載、代碼檢查、測試。
browserify-simple - 最簡單的Browserify + vueify 插件。
理論上webpack和browserify的功能相似,均可以作打包工具。可是webpack就是那個文檔特少,可是你們都爭着使用的熱門工具。因此,咱們就無論那麼多,先使用webpack啦。
$ cd my-project
$ npm install
$ npm run dev
到http://localhost:8080查看效果。
vue文件是三位一體的。就是說css、html、js都在一個文件內,使用標籤作出分割。爲了更好的查看結構,建議首先安裝對應編輯器的高光插件。
我習慣使用的編輯器是sublime text,安裝插件就能夠識別全部擴展名爲.vue的vuejs組件代碼,給予高光顯示,便於代碼的閱讀和編寫。這個插件叫作 vue-syntax-highlight,是vuejs官方提供的。它位於github.com。只要把它克隆到你的Sublime包目錄內。在個人電腦上,Sublime包目錄是/Users/lcj/Library/Application Support/Sublime Text 3/Packages ,因此安裝的過程就是
cd /Users/lcj/Library/Application\ Support/Sublime\ Text\ 3/Packages
git clone https://github.com/vuejs/vue-syntax-highlight
而後從新啓動便可。以後閱讀代碼,全部的擴展名爲.vue文件都會有相應的高光顯示。
起步代碼中有一個組件代碼,在src/hello.vue內。查看:
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
data () {
return {
msg: 'Hello World!'
}
}
}
</script>
<style scoped>
h1 {
color: #42b983;
}
</style>
文件內分爲三個部分, <template>標籤包圍內的是html代碼; <script>內包圍的是js代碼,而且可使用ES6的語法。 <style>內的則是css代碼。使用這個組件的代碼在app.vue內。只要首先在腳本內聲明標籤
import Hello from './components/Hello'
export default {
components: {
Hello
}
}
隨後在html內使用標籤便可
<hello></hello>
很是大的一個亮點!一個vue文件,內部js、css、html就都齊了,能夠做爲一個完整的、自包含的組件了。很是有趣的、我我的極爲欣賞的web components就在此處了。
vue文件內的語法,固然不是瀏覽器所能夠支持的,瀏覽器不認識它!魔術在於webpack+vue-loader+babel 。webpack加載vue文件首先調用vue-loader,vue-loader會調用babel轉換ES6代碼爲ES5代碼,把css和html做爲模塊也轉換爲客戶端js代碼。這些js代碼瀏覽器就能夠識別了。
另外,咱們看看熱加載。把hello組件的msg值改改。而後保存。瀏覽器會自動刷新的。這就是熱加載了。對於頻繁修改調試的程序員,有了熱加載,得輕鬆很多。
我習慣使用的瀏覽器是chrome,能夠安裝vue的開發工具到chrome插件內。在chrome市場內查詢vue-developertools 。有了它,能夠在chrome console內看到更加友好的vue錯誤提示。
咱們全部的編輯修改一旦完成須要更新網站時,最終須要把全部的vue,ES6代碼等編譯出來到ES5的js文件。如今能夠構建這些webpack代碼:
npm run build
此命令會把咱們已經有的開發成果,編譯到dist目錄下,就是說編譯成前端能夠直接使用的html、js、css。
有了它們,我就可使用一個http 靜態服務器,在dist目錄內執行:
cd dist
npm install http-server -g
http-server
而後,到http://localhost:8080查看效果。和運行npm run dev
看到的如出一轍。
vue還有兩個插件,對開發者頗有價值
npm install vue-resource --save
npm install vue-router --save
咱們蜻蜓點水的看了webpack、vue-loader、babel 、vue組件,將來須要一些篇幅去詳細說明它們。
注:本文轉自微信公衆號前端大全的文章