3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
Getting Started with Vue Vue:2.5 Vue 是目前前端框架三巨頭之一,好處非常多,除了學習曲線相較其他兩套低之外,Laravel 這套 PHP Framework 更在 5 之後預設把 Vue 納進其中。因此在面對不同類型的專案,Vue 就顯得更為彈性。 但在開始使用 Vue 之前,必須先瞭解它的運作方法及架構,這樣才能真正知道這套 Framework 適不適合自己使用。 MVVM Vue 的架構設計是採用 MVVM 模式。 (圖片來源:Microsoft) MVVM 由 Model、View、ViewModel 三個部份組合而成。Model 代表的是資料層,可以在 Model 中定義資料修改和商業邏輯、View 代表網頁上的 UI 元件,它負責將資料轉換成 UI 呈現在網頁上,而 ViewModel 介於兩者之間,負責同步 View 及 Model 。 透過 ViewModel,只要 Model 或 View 有任何修改,就可以即時反應給對方,不需要任何手動操作 DOM 等等的人為干涉,就可以達到 Two-Way-Binding 的效果。 Vue Instance 一個完整使用 Vue 的應用,是一個 Vue Instance 掛上好多個 Components 所完成的。 (圖片來源:Composing with Components) 既然是 Instance,那就會有它的 Lifecycle。 (圖片來源:Lifecycle Diagram) Virtual DOM(vNode) 在網頁上,如果任何操作都直接在 DOM 上調整,其實是非常花效能的。Virtual DOM 是以 Javascript 物件模擬 DOM 的結構去產生的樹狀結構,前端操作過程中的任何更動,都只改這份模擬物件的結構就好,最後根據 diff 再一次把修改的部份更新到真正的 DOM 上,這樣一來在大部份狀況下,效能就可以提昇許多。 而 Virtual DOM 在 Vue 實作就叫 VNode。 (圖片來源:aooy/blog) 詳細做 diff 的過程可以參考 解析 Vue 2.0的 diff 算法。 Usage 在瞭解 Vue 的架構之後,可以開始試著完成幾個實作。 在這之前必須先引入 Vue: Lifecycle test const vm = new Vue({ beforeCreate: function() { // Vue Instance 被 Vue Constructor 建立前 console.log('beforeCreate'); }, created: function() { // Vue Instance 已建立 // Data Binding 完成 console.log('created'); }, beforeMount: function() { // Mount DOM 之前 console.log('beforeMount'); }, mounted: function() { // DOM Mounted console.log('mounted'); }, beforeUpdate: function() { // 資料更新,但還沒更新 DOM console.log('beforeUpdate'); }, updated: function() { // DOM 更新完成 console.log('updated'); }, beforeDestroy: function() { // 刪除 Vue Instance 之前 console.log('beforeDestroy'); }, destroyed: function() { // 刪除 Vue Instance 之後 console.log('destroyed'); } }); Two-Way-Binding(v-model) {{ message }} const app = new Vue({ // 設定 Element el: '#app', // Set Data data: { message: 'Hello Vue!' } }); Categories: Vue Tags: javascriptVue 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop Language Go Java JavaScript jQuery jQueryChart Node.js Vue PHP Laravel ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦