Vue.js 2.0 教程


兼容性

Vue.js 不支持 IE8 及其以下版本,因為 Vue.js 使用了 IE8 不能實現的 ECMAScript 5 特性。 Vue.js 支持所有兼容 ECMAScript 5 的瀏覽器

更新日志

每個版本的更新日志見 GitHub

獨立版本

直接下載并用 <script> 標簽引入,Vue 會被注冊為一個全局變量。重要提示:在開發時請用開發版本,遇到常見錯誤它會給出友好的警告。

開發環境不要用最小壓縮版,不然就失去了錯誤提示和警告!

開發版本包含完整的警告和調試模式

生產版本刪除了警告,22.86kb min+gzip

CDN

推薦:unpkg, 會保持和 npm 發布的最新的版本一致。可以在 unpkg.com/vue/ 瀏覽 npm 包資源。

也可以從 jsdelivrcdnjs 獲取,不過這兩個服務版本更新可能略滯后。

NPM

在用 Vue.js 構建大型應用時推薦使用 NPM 安裝, NPM 能很好地和諸如 WebpackBrowserify 模塊打包器配合使用。 Vue.js 也提供配套工具來開發單文件組件。

# 最新穩定版 
$ npm install vue

獨立構建 vs 運行時構建

有兩種構建方式,獨立構建和運行構建。

  • 獨立構建包括編譯和支持 template 選項。 它也依賴于瀏覽器的接口的存在,所以你不能使用它來為服務器端渲染。

  • 運行時構建不包括模板編譯,不支持 template 選項。運行時構建,可以用 render 選項,但它只在單文件組件中起作用,因為單文件組件的模板是在構建時預編譯到 render 函數中,運行時構建只有獨立構建大小的30%,只有 16 Kb min+gzip大小。

默認 NPM 包導出的是 運行時 構建。為了使用獨立構建,在 webpack 配置中添加下面的別名:

resolve: {
alias: {
'vue$': 'vue/dist/vue.js' 
}
}
對于Browserify,可以用 aliasify

不要用 import Vue from 'vue/dist/vue.js' - 用一些工具或第三方庫引入 Vue ,這可能會導致應用程序在同一時間加載運行時和獨立構建并造成錯誤。

CSP 環境

有些環境,如 Google Chrome Apps ,強制應用內容安全策略 (CSP) ,不能使用 new Function() 對表達式求值。這時可以用 CSP 兼容版本。獨立的構建取決于該功能編譯模板,所以無法使用這些環境。

另一方面,運行時構建的是完全兼容 CSP 的。當通過 Webpack + vue-loader 或者 Browserify + vueify 構建時,在 CSP 環境中模板將被完美預編譯到 render 函數中。

命令行工具

Vue.js 提供一個官方命令行工具,可用于快速搭建大型單頁應用。該工具提供開箱即用的構建工具配置,帶來現代化的前端開發流程。只需一分鐘即可啟動帶熱重載、保存時靜態檢查以及可用于生產環境的構建配置的項目:

# 全局安裝 vue-cli
$ cnpm install --global vue-cli
# 創建一個基于 webpack 模板的新項目
$ vue init webpack my-project
# 這里需要進行一些配置,默認回車即可
This will install Vue 2.x version of the template.

For Vue 1.x use: vue init webpack#1.0 my-project

? Project name my-project
? Project description A Vue.js project
? Author runoob <[email protected]>
? Vue build standalone
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? Yes

   vue-cli · Generated "my-project".

   To get started:
   
     cd my-project
     npm install
     npm run dev
   
   Documentation can be found at https://vuejs-templates.github.io/webpack

開發版本

重要: 在發布后構建的文件在 Github 倉庫的 /dist 文件夾。為了使用 Github 上 Vue 最新的資源,你得自己構建。

git clone https://github.com/vuejs/vue.git node_modules/vue
cd node_modules/vue
npm install
npm run build

Bower

# 最新穩定版本 
$ bower install vue

AMD 模塊加載器

獨立下載版本或通過 Bower 安裝的版本已用 UMD 包裝,因此它們可以直接用作 AMD 模塊。

Vue.js 目錄結構

上一章節中我們使用了 npm 安裝項目,我們再 IDE(Eclipse、Atom等) 中打開該目錄,結構如下所示:

目錄解析

目錄/文件 說明
build 最終發布的代碼存放位置。
config 配置目錄,包括端口號等。我們初學可以使用默認的。
node_modules npm 加載的項目依賴模塊
src

這里是我們要開發的目錄,基本上要做的事情都在這個目錄里。里面包含了幾個目錄及文件:

  • assets: 放置一些圖片,如logo等。
  • commponents: 目錄里面放了一個組件文件,可以不用。
  • App.vue: 項目入口文件,我們也可以直接將組建寫這里,而不使用 commponents 目錄。
  • main.js: 項目的核心文件。
static 靜態資源目錄,如圖片、字體等。
test 初始測試目錄,可刪除
.xxxx文件 這些是一些配置文件,包括語法配置,git配置等。
index.html 首頁入口文件,你可以添加一些 meta 信息或同統計代碼啥的。
package.json 項目配置文件。
README.md 項目的說明文檔,markdown 格式

在前面我們打開 APP.vue 文件,代碼如下(解釋在注釋中):

src/APP.vue

<!-- 展示模板 -->
<template>
  <div id="app">
    <img src="./assets/logo.png">
    <hello></hello>
  </div>
</template>
 
<script>
// 導入組件
import Hello from './components/Hello'
 
export default {
  name: 'app',
  components: {
    Hello
  }
}
</script>
<!-- 樣式代碼 -->
<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

接下來我們可以嘗試修改下初始化的項目,將 Hello.vue 修改為以下代碼:

src/commponents/Hello.vue

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
  </div>
</template>
 
<script>
export default {
  name: 'hello',
  data () {
    return {
      msg: '歡迎來到手冊網!'
    }
  }
}
</script>

重新打開頁面 http://localhost:8080/,一般修改后會自動刷新。


股票配资平台l选一直牛