袁芳芳 寧君宇 田路強 陳森
摘 要:隨著互聯網的飛速發展,人們對PC端、移動端應用的要求也越來越高。除了要滿足用戶穩定、快捷的使用功能體驗,令人愉悅的UI,流暢、炫酷、人性化的交互等也變得必不可少。這種需求催生出了一波又一波的前端框架,其中,Vue.js以簡潔、靈活、模塊友好等特點成為三大主流框架之一。本文先是對Vue.js的特點進行概述,然后介紹了Vue.js的生態圈,以一個由內而為的角度對Vue進行了較全面的闡述。
關鍵詞:Vue;前端框架;生態圈
Vue.js(/vju/)是一套構建用戶界面的漸進式前端框架,其名字取自View的諧音,而且在法語里Vue也有View之意。Vue.js只關注視圖層,采用自底向上增量開發的設計。Vue的目標是通過盡可能簡單的API實現響應的數據綁定和靈活的組件系統。
1 Vue特點概述
簡潔:基于Vue框架開發應用時,代碼編寫風格簡潔,并且通俗易懂;并且Vue相比Rect和Angular源碼更小巧。
靈活:由于Vue框架本身只關注UI的特點,可以讓用戶更自由地選擇使用一個或一些庫。例如使用Vue框架時,路由功能、Ajax技術并不屬于它的核心功能,但是如果用戶需要用到路由或Ajax,可以將相關的官方庫添加進來;也可以使用其他的庫或插件,如jQuery的Ajax等。這種按需添加的方式可以使得應用占用的資源更少,運行效率更高。
模塊友好:基于Vue框架開發時可以利用CommonJS、RequireJS或者SeaJs等來自第三方的模塊構建工具將代碼模塊化;也可以使用ES6的模塊化功能,再配合使用Webpack這種前端資源打包工具進行相應打包,輕松實現代碼的模塊化。
組件化:Vue框架支持組件化開發,通過組件化開發大大提高了代碼可維護性。組件化的思路為將前端頁面上某個組件的html、css、js代碼集中放到一個.vue的文件中進行組件化的管理和使用。
2 Vue生態圈
隨著前端的盛行,Vue框架的用戶群越來越大,Vue官方開啟了全職運營、維護、以及迭代開發模式,從而構建了越來越豐富的生態圈,如Vue Router-路由管理器、Vuex-狀態管理工具、Vue Cli-腳手架、Vue Loader-文件加載器、 Vue Server Render-服務端渲染、Vue devtools-調試工具等。
Vue Router,是Vue官方的路由管理器。它為Vue框架增加了路由功能。通過路由功能,用戶可以根據開發的需求自行加載相關組件,簡化構建單個頁面應用的過程。Vue框架對組件化開發的支持也使得路由實現起來相對簡單。由于頁面的所有內容都可以組件化開發,所以在基于Vue框架開發時,路由實現相對簡單。使用思路為將路徑和組件一一對應,然后在頁面中把組件渲染出來。
VueX,是Vue官方的狀態管理工具,采用全局單例模式,將組件的共享狀態抽離出來管理,使組件樹中的每一個位置都可以獲取共享的狀態變量或者觸發行為。它的核心概念包括共享狀態State,組件的計算屬性Getter,僅支持同步修改狀態的方法Mutation,支持異步修改狀態變量的方法Action。使用思路為:(1)在State中建立屬性變量;(2)通過提交Mutation方式同步或異步更改State中的變量。
Vue Cli,腳手架工具,是一個基于Vue框架進行快速開發的完整系統,依賴該工具可以快速創建一個項目。Vue Cli的目標是將Vue生態中的工具基礎標準化。
Vue Cli 還包含Cli,Cli Service,Cli插件三個獨立部分。Cli是一個全局安裝的npm包,提供了終端里的Vue命令。Cli Service是一個局部安裝的npm包,是一個開發環境依賴。Cli 插件是向用戶的Vue項目提供可選功能的npm包,
使用Vue Cli的思路為:(1)進入放置項目目錄,創建項目;(2)根據提示輸入項目名稱、描述、作者、打包方式等;(3)利用cnpm install命令安裝依賴。
webpack處理各種資源的時候,需要加載各種loader,Vue Loader就屬于webpack的一個文件加載器,用來將.vue后綴的單文件組件轉換為JavaScript模塊,從而能夠提供用戶以一種名為單文件組件 (SFCs)的格式撰寫 Vue 組件。
Webpack和Vue Loader的配合使用,為用戶撰寫基于Vue框架的應用提供了一個現代、靈活且極其強大的前端工作流。
Vue Server Render為服務端渲染,即客戶端向服務端請求某頁面時,只需要發送一次請求,服務端就將一個渲染好的頁面直接返回給客戶端。Vue的服務端渲染原理是:服務器利用Vue渲染庫的核心函數將組件或頁面生成html字符串,然后發送到客戶端瀏覽器,最后將靜態標記"混合"為客戶端上完全交互的應用程序。服務端渲染的特點有:(1)相比傳統單頁應用,服務端渲染更有利于搜索引擎優化,減少頁面首屏的加載時間。(2)服務端渲染對服務器的壓力相對較大。
Vue Class Component是Vue官方推出的對typescript支持的基于類的注解裝飾器(庫)。使用時需要注意:(1)methods可以直接聲明為類的成員方法;(2)計算屬性可以被聲明為類的屬性訪問器;(3)初始化的data可以被聲明為類屬性;(4)data、render以及所有的Vue 生命周期鉤子可以直接作為類的成員方法;(5)所有其他屬性,需要放在裝飾器中。
Vue Devtools是一款基于chrome瀏覽器的插件,用于調試基于Vue框架的應用。使用該插件可以使用戶開發起應用來更加高效率。
3 結語
Vue簡潔、靈活、模塊化友好等特點吸引了越來越多的開發者,反過來,越來越多的開發者也在不斷繁榮Vue的生態系統。本文從Vue各個特點出發再到生態圈的各個組成,較全面的為讀者闡述了當下流行的前端框架Vue。
參考文獻:
[1]劉博文.深入淺出Vue.js.人民郵電出版社,2019-03-01.
[2]陳陸揚.Vue.js前端開發快速入門與專業應用.人民郵電出版社,2017-01-01.
[3]朱二華.基于Vue.js的Web前端應用研究[J].科技與創新,2017(20):119-121.