1. 程式人生 > >從零開始的vue.js實戰專案

從零開始的vue.js實戰專案

一、實戰專案的開發涉及方面

1、需求分析

2、腳手架工具

3、資料mock

4、架構設計

5、程式碼編寫

6、自測

7、編譯打包

二、功能技術分析

1、vue-resource 與後端做資料互動

2、vue-router 做前端路由,實現單頁面應用

3、better-scroll 做列表的滾動

4、最大程度元件化

三 、學習目標

1、掌握vue.js在實戰專案中的運用

2、學會使用vue.js完整開發移動端APP

3、學會元件化、模組化的開發方式

四、學習內容

1、vue.js框架的介紹

      它是一個輕量級的MVVM框架,體積很小Gzip之後只有20K左右。

      資料驅動+元件化的前端開發,社群(GitHUb、論壇、聊天室、Twitter)完善

2、vue-cli 腳手架  搭建基本程式碼框架(node包)----確保node版本 > v4+

      它能夠完成目錄結構、本地除錯、程式碼部署、熱載入、單元測試等功能。

3、vue-router 官方外掛管理路由

4、vue-resource 官方外掛用於和後端進行Ajax通訊

5、webpack構建工具

6、es6+eslint   eslint是es6程式碼風格檢查工具

7、flex彈性佈局

8、css sticky footer

9、工程化、元件化、模組化

10、移動端常用的開發技巧

五、近些年的前端開發的趨勢

1、舊的瀏覽器被淘汰,移動端需求增加

2、前端互動越來越多,功能越來越複雜

3、架構從傳統後臺MVC向REST API+前端MV*遷移

六、MVVM框架

1、MVVM框架主要包含了View、ViewModel 與 Model。

其中Model主要是資料部分,對應前端的一些JavaScript物件

View是檢視部分,對應前端的DOM

ViewModel是連線檢視和資料的中介軟體。實現一個觀察者的功能。觀測檢視和資料的變化,實現資料的雙向繫結。

2、應用場景

針對具有複雜互動邏輯的前端應用

提供基礎的架構抽象

通過Ajax資料持久化,保證前端使用者體驗。應為重新整理頁面的代價太大了。

六、前端開發技術選型幾要素

1、技術社群的活躍度

2、對比vue.js、react.js、angular.js

(1). vue.js更加地輕量,gzip後只有20K+ , react.js gzip後44K, angular.js gzip後56K

(2). vue.js 更易上手學習曲線比較地平穩,借鑑了angular.js的指令與react.js的元件化,同時具有特性計算屬性

3、vue.js的核心思想

(1)、資料驅動

DOM是資料的一種自然對映。資料響應的原理是viewModel監測資料和檢視的變化自動更新。在vue裡,你只需要改變資料,vue通過directives指令去對dom做一些封裝,當資料發生變化,會通知指令去修改對應的dom,資料驅動dom變化,dom是資料的一種自然對映,vue還會對dom做一些監聽,當我們修改檢視的時候,vue監聽到這些dom的變化,從而改變資料。

(2)、元件化

目的:擴充套件HTML元素,封裝可重用的程式碼。

元件的設計原則:頁面上每個獨立的可視/可互動區域都可以作為一個元件。每個元件對應一個工程目錄,元件所需要的各種資源在這個目錄下就近維護。頁面不過是元件的容器,元件可以巢狀自由組合形成完整的頁面。

六、程式碼風格規範

1、註釋

單行註釋// 後留一個空格。

多行註釋/*  內容  */ 中 ‘內容’兩側各留一個空格。 

2、css樣式

(1)、佈局相關的樣式:display、position

(2)、寬高相關的樣式:width、height、line-height

(3)、可被繼承的樣式:字型,顏色等

七、圖示字型的製作

參見:http://blog.csdn.net/aaa333qwe/article/details/77574017

八、資料mock

資料的mock可以採用爬蟲去獲取一些外賣網站的json資料。

九、CSS重置以及.eslintrc.js如何配置

程式碼為cssreset官網( http://cssreset.com/)提供

eslint官網:https://eslint.org/

十、課程原始碼地址

https://github.com/attraction11/vue-sell-app

十一、參考資料

vue.js 官網:https://cn.vuejs.org/

vue-cli  https://github.com/vuejs/vue-cli

 vue-resource  https://github.com/pagekit/vue-resource

vue-router   https://github.com/vuejs/vue-router

better-scroll   https://github.com/ustbhuangyi/better-scroll

stylus  http://www.zhangxinxu.com/jq/stylus/

es6  http://es6.ruanyifeng.com/

eslint   https://eslint.org/