1. 環境準備
Vue是一套用於構建使用者介面的漸進式框架,設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層。
安裝Node.js,下載:https://nodejs.org/
檢視安裝:
$ node -v
npm包管理器,整合在node中。
檢視npm版本:
$ npm -v
npm是國外資源,資源網路存在部分限制因素.
安裝國內映象cnpm:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
2. 安裝vue-cli腳手架構建工具
2.1 全域性安裝vue-cli
$ npm install -g vue-cli
或:
$ cnpm install -g vue-cli
2.2 使用vue-cli構建專案
指定專案目錄:
C:\Users\Libing>cd /d F:\Projects
構建專案:
F:\Projects>vue init webpack libing.vue
安裝專案依賴包:
F:\Projects\libing.vue>cnpm install
執行專案:
F:\10-Projects\libing.vue>cnpm run dev
專案執行成功之後,在瀏覽器中開啟地址檢視:http://localhost:8080
修改埠號:config/index.js
專案打包:打包完成後,會生成 dist 資料夾。專案上線時,只需要將 dist 資料夾放到伺服器。
$ npm run build
或:
$ cnpm run build
2.3 Vue.js目錄結構
目錄/檔案 | 說明 |
---|---|
build | 專案構建(webpack)相關程式碼 |
config | 配置目錄,包括埠號等。 |
dist | 打包目錄 |
node_modules | npm 載入的專案依賴模組 |
src |
開發目錄,目錄及檔案: ◊ assets:存放圖片、Logo等; ◊ components: 目存放一個元件檔案,可以不用。 ◊ App.vue: 專案入口檔案,可以直接將元件寫這裡,而不使用 components 目錄。 ◊ main.js:專案的核心檔案。 |
static | 靜態資源目錄,如圖片、字型等。 |
test | 初始測試目錄,可刪除 |
xxxx檔案 | 配置檔案,包括語法配置,git配置等。 |
index.html | 首頁入口檔案,可新增一些 meta 資訊或統計程式碼 |
package.json | 專案配置檔案 |
README.md | 專案說明文件,markdown 格式 |
3. 起步示例
3.1 示例
示例1:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>libing.vue</title> <script src="node_modules/vue/dist/vue.min.js"></script> </head> <body> <div id="app"> <h1>{{ title }}</h1> <ul> <li v-for="todo in todos" v-bind:key="todo.id"> {{ todo.text }} {{ getTitle() }} </li> </ul> </div> <script> new Vue({ el: "#app", data: { title: "Todo List", todos: [{ id: 1, text: "Pending" }, { id: 2, text: "In Procedure" }, { id: 3, text: "Done" } ] }, methods: { getTitle: function () { return this.title; }, add: function () { }, remove: function () { } } }); </script> </body> </html>
示例2:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>libing.vue</title> <script src="node_modules/vue/dist/vue.min.js"></script> </head> <body> <div id="app"> <h1>{{ title }}</h1> <input type="text" v-model="newTodo" v-on:keyup.enter="add"> <ul> <li v-for="(todo,index) in todos"> {{ todo.text }} <button v-on:click="remove(index)">X</button> </li> </ul> </div> <script> new Vue({ el: "#app", data: { title: "Todo List", newTodo: "", todos: [{ text: "Pending" }, { text: "In Procedure" }, { text: "Done" } ] }, methods: { add: function () { var text = this.newTodo.trim() if (text) { this.todos.push({ text: text }) this.newTodo = '' } }, remove: function (index) { this.todos.splice(index, 1) } } }); </script> </body> </html>
3.2 說明
每個Vue應用都需要通過例項化 Vue 來實現。
var vm = new Vue({
// 選項
});
Vue建構函式引數:
el:DOM 元素中的 id
data:定義屬性
methods:定義函式,可以通過 return 來返回函式值。
{{ }}:輸出物件屬性和函式返回值