現在的各種開源項目中使用 Vue 的越來越多了,作為一個后端程序員不會點 Vue 也都玩不轉了。所以抽空學習了一下 Vue 的簡單用法,整理成筆記,方便有需要的同學一起學習。
Vue 是一個前端的框架,被稱作是 漸進式 JAVAScript 框架。在進入 Vue 的官網時即可看到,上面圖的就是從 Vue 官網復制的。
什么是 漸進式 框架,這里我們引用官網的原文來看,原文如下:
Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合。另一方面,當與現代化的工具鏈以及各種支持類庫結合使用時,Vue 也完全能夠為復雜的單頁應用提供驅動。 https://cn.vuejs.org/v2/guide/
Vue 可以作為整個前端開發的一部分,也可以作為一個整體。也就是說,可以使用 Vue 的部分功能來構建前端,也可以完全使用 Vue 來構建前端。大概就是這樣的意思。
一、Vue 的開始
Vue 的開始還是很方便的,只需要引入一個庫文件 —— Vue.js 即可開始。我們可以去 Vue 的官網下載,也可以通過 CDN 來直接引入 vue 都可以。這里我下載了 vue.min.js 文件。
創建一個 html 文件,然后引入 vue.min.js 文件,接著實現一個簡單的 Hello Vue 的程序。代碼如下:
{{message}}
在上面的代碼中,通過
單向綁定可以時 v-bind 也可以省略 v-bind,但是注意,冒號不能省略。上面的代碼中相當于給 style 設置了 color:blue 屬性,運行效果如下圖:
三、雙向綁定
雙向綁定通過指令 v-model 來完成,下面的代碼中,data 中的 keyword 會影響 div 中的兩個 input 框,第二個 input 框使用的 v-model 指令,那么當改變第二個 input 框中的值時,同樣會改變 data 中 keyword 的值;又由于改變了 data 中 keyword 的值,從而第一個 input 框的值也會隨之改變。
{{keyword}}
運行如下圖所示:
改變第二個 input 的值,如下圖所示:
可以看到,通過修改第二個 input 框的值,上面的值也跟著發生了改變。
四、事件綁定
事件綁定是對事件的監聽,可以通過 v-on 或 @ 指令來完成,代碼如下:
事件綁定1 事件綁定2
上面的代碼中,通過 v-on 和 @ 將 Button 和 show() 方法進行綁定,輸出如下圖所示:
上面的代碼中,在 Vue 對象中增加了 methods,在 methods 中可以用來定義方法。
五、條件指令
條件指令使用 v-if 和 v-else 來完成,看如下代碼:
選中了 沒有選中
上面的代碼中,通過 v-model 和 ok 來進行雙向綁定,然后當改變 checkbox 的選中狀態時,v-if 和 v-else 會自動改變文字描述。
六、循環指令
循環指令使用 v-for,它可以用來遍歷數組從而渲染一個列表,看如下代碼:
{{index+1}} -- {{user.name}} -- {{user.age}}
上面的代碼中 index 是一個循環的計數從 0 開始,然后循環 userList json 數組,輸出如下圖:
七、Vue 生命周期
Vue 的生命周期,就是創建、銷毀 Vue 對象時會自動執行的幾個函數,Vue 的官網提供了一個生命周期圖,該圖的地址如下:
https://cn.vuejs.org/v2/guide/instance.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%9B%BE%E7%A4%BA
我這里從官網復制過來,如下圖。
在上圖中可以看到,不同的生命周期有不同的方法會被執行,比如 created、updated、destroyed 等。
這里寫代碼進行測試:
{{msg}}
在代碼的 created 和 mounted 兩處放入了 debugger 命令,打開 F12 的調試窗口時,當執行到 debugger 位置處時,會自動觸發斷點從而斷下,首先斷在 created 方法中,如下圖:
從上圖可以看出,此時的插值表達式并沒有進行實際的替換,按 F8 讓頁面繼續渲染,會斷在 mounted 方法中,如下圖:
此時可以看到,插值表達式已經變成了 hello。這樣可以清楚的看到不同的生命周期會觸發不同的方法。
八、axIOS 和 vue-resource 庫
axios 是基于 Promise 的 Ajax 的庫,在 Vue 中有一個 vue-resource 庫用于實現異步加載的庫。在 Vue.js 2.0 中推薦使用 axios 來完成 Ajax 的請求。這里給出演示的代碼,代碼如下:
{{index + 1}} {{user.name}} {{user.age}} {{index + 1}} {{it.name}} {{it.age}}
上面的代碼中,同時演示了 axios 和 vue-resource 兩個庫。代碼中直接請求了兩個 json 文件,并沒有去進行實際的接口請求。
九、總結
Vue 的內容不只有這么些,具體可以參考 Vue 的官網(https://cn.vuejs.org/v2/guide/)進行學習和了解。這里只是列出了可能使用較為頻繁的部分。不對之初請予指正。