搜尋
首頁web前端js教程Vue.js的圖文詳解

Vue.js的圖文詳解

Mar 07, 2018 am 10:45 AM
javascriptvue.js圖文

這次帶給大家Vue.js的圖文詳解,使用Vue.js的的注意事項有哪些,下面就是實戰案例,一起來看一下。

Vue.js作為目前最熱門最具前景的前端框架之一,其提供了一種幫助我們快速建立並開發前端專案的新的思維模式。本文旨在幫助大家認識Vue.js,了解Vue.js的開發流程,並進一步理解如何透過Vue.js來建構一個中大型的前端項目,同時做好對應的部署與最佳化工作。

文章將以PPT圖片附加文字介紹的形式展開,不會涉及知識點的具體程式碼,點到為止。有興趣的同學可以查看相應的文件進行了解。

Vue.js簡介

Vue.js的圖文詳解

#從上圖的介紹我們不難發現Vue.js是一款輕量級的以資料驅動的前端JS框架,其和jQuery最大的不同點在於jQuery透過操作DOM來改變頁面的顯示,而Vue透過操作資料來實現頁面的更新與展示。以下是Vue資料驅動的概念模型:

Vue.js的圖文詳解

Vue.js主要負責的是上圖綠色正方體ViewModel的部分,其在View層(即DOM層)與Model層(即JS邏輯層)之間透過ViewModel綁定了DOM Listeners與Data Bingings兩個相當於監聽器的東西。

當View層的視圖改變時,Vue會透過DOM Listeners來監聽並改變Model層的資料。相反,當Model層的資料改變時,其也會透過Data Bingings來監聽並改變View層的展示。這樣便實作了一個雙向資料綁定的功能,也是Vue.js資料驅動的原理所在。

Vue實例

Vue.js的圖文詳解

#在一個html檔中,我們直接可以透過script標籤引入Vue. js,然後就可以在頁面裡寫Vue.js程式碼了。上圖中我們透過new Vue()建構了一個Vue的實例,在實例中,可以包含掛在元素(el),資料(data),模板(template),方法(methods)與生命週期鉤子(created等)等選項。不同的實例選項有不同的功能,如:

(1)el表示我們的Vue需要操作哪一個元素下的區域,'#demo'表示操作id為demo的元素下區域。
(2)data表示Vue 實例的資料對象,data 的屬性能夠回應資料的變化。
(3)created表示實例生命週期中建立完成的那一步,當實例已經建立完成之後將呼叫其方法。

Vue常用指令

Vue.js的圖文詳解

#在Vue專案的開發中,我們所使用的最多的應該就屬Vue的指令了。透過Vue提供的常用指令,我們可以淋漓盡致地發揮Vue資料驅動的強大功能。以下便是圖中常用指令的簡單介紹:

(1)v-text: 用於更新綁定元素中的內容,類似於jQuery的text()方法
(2)v- html: 用於更新綁定元素中的html內容,類似jQuery的html()方法
(3)v-if: 用於根據表達式的值的真假條件渲染元素,如果上圖P3為false則不會渲染P標籤
(4)v-show: 用於根據表達式的值的真假條件�顯示隱藏元素,切換元素的display CSS 屬性
(5)v-for: 用於遍歷資料渲染元素或模板,如圖中P6為[1,2,3]則會渲染3個P標籤,內容依序為1,2,3
(6)v-on: 用於在元素上綁定事件,圖中在P標籤上綁定了showP3的點擊事件

關於更多的Vue指令可以查看Vue2.0文檔,網址:https://vuefe.cn/api/#指令

Vue.js技術堆疊

Vue.js的圖文詳解

#

以上我們講到可以直接在一個html頁面裡透過引入Vue.js來直接寫Vue程式碼,但這樣的方式並不常用。因為如果我們的專案比較大,專案中會存在很多頁面,一旦每個頁面都引入一個Vue.js或聲明一個Vue實例,這樣非常不利於後期的維護和程式碼的公用,也會存在實例名衝突的情況,所以我們需要用到Vue提供的技術堆疊來建構強大的前端專案。

除了Vue.js我們還要用到:

(1)vue-cli:Vue的鷹架工具,用於自動產生Vue專案的目錄及檔案。
(2)vue-router: Vue提供的前端路由工具,利用其我們實現頁面的路由控制,局部刷新及按需加載,構建單頁應用,實現前後端分離。
(3)vuex:Vue提供的狀態管理工具,用於同一管理我們專案中各種資料的互動和重複使用,儲存我們需要用到資料物件。
(4)ES6:Javascript的新版本,ECMAScript6的簡稱。利用ES6我們可以簡化我們的JS程式碼,同時利用其提供的強大功能來快速實現JS邏輯。
(5)NPM:node.js的套件管理工具,用於同一管理我們前端專案中需要用到的套件、外掛程式、工具、命令等,以便於開發和維護。
(6)webpack:一款強大的檔案打包工具,可以將我們的前端專案檔案同一打包壓縮至js中,並且可以透過vue-loader等載入器實現語法轉換與載入。
(7)Babel:一款將ES6程式碼轉換為瀏覽器相容的ES5程式碼的外掛程式

利用以上等技術,我們便可以開始建立我們的Vue專案了。

建立大型應用程式

Vue.js的圖文詳解

#在建構我們的中大型Vue專案中,我們主要介紹如何利用vue-cli自動產生我們專案的前端目錄及文件,了解Vue中一切皆組件的概念及父子組件的通訊問題,講解在Vue專案中我們如何使用第三方插件,最後利用webpack來打包及部署我們的項目。

vue-cli建置

Vue.js的圖文詳解

#在使用vue-cli之前我們需要安裝node.js,利用其提供的npm指令來安裝vue-cli。安裝node.js只需去其官網下載軟體並安裝即可,網址為:https://nodejs.org/en/

安裝完成之後我們開啟電腦的cmd命令列工具依序輸入上圖中的指令:

(1)npm install -g vue-cli:全域安裝vue-cli
(2)vue init webpack my-project: 利用vue-cli在目錄位址產生一個基於webpack的名為'my-project'的Vue專案檔案及目錄
(3)cd my-project:開啟剛剛建立的資料夾
(4)npm intall:安裝專案所依賴的套件檔案
(5)npm run dev:利用本機node伺服器在瀏覽器中開啟並瀏覽專案頁面

這樣我們的一個基於webpack的vue專案目錄就建置好了。

單一檔案元件

Vue.js的圖文詳解

#在剛剛建立好的vue專案中,我們會發現一個App .vue和Hello.vue的文件,那麼像這樣的以.vue後綴結尾的文件便是我們Vue專案中常見的單一文件元件。單檔案元件包含了一個功能或模組的html、js及css。在.vue檔案中,我們可以在template標籤中寫html,在script標籤中寫js,在style標籤中寫css。這樣一個功能或模組就是一個.vue元件,對於元件公用和後期的維護也非常便捷。

父子元件通訊

Vue.js的圖文詳解

#那麼像這樣在以單一檔案元件為核心的專案開發中,我們一定會想到一個問題,就是.vue父子元件之間是如何交換資料來實現通訊的呢?在Vue2.0中提供了props來實作父元件向子元件傳遞數據,透過$emit來實作子元件向父元件傳遞資料。當然如果是較為複雜、普遍的資料交互,建議大家使用vuex來相同管理資料。詳情請見:https://vuefe.cn/guide/components.html#使用Props傳遞資料

外掛程式使用

Vue.js的圖文詳解

接下來我們介紹下在基於webpack的vue專案中我們是如何使用外掛程式的,主要有兩種情況:

(一)全域使用

(1)在index.html引進:這樣的方式不建議使用,因為有先後載入順序的問題,有些外掛不支援這個方式。
(2)透過webpack設定檔引入:主要透過plugin設定項的webpack.ProvidePlugin()方法實現,不過只適合支援CommonJs規格並提供一個全域變數的插件,如jQuery中的$。
(3)透過import + Vue.use()引入:這種方式需要在全域.vue檔案中import需要載入的插件,然後透過Vue.use('插件變數名')來實現,不過此方法只支援遵循Vue.js插件編寫規範的插件使用,如vue-resourece。

(二)單一檔案使用

(1)透過import直接引入:這種方式可以在需要呼叫插件的.vue檔案中使用,不過需要注意和實例的建立順序問題,或者也可以透過require引入。

(2)import + components註冊:此方式為Vue元件的使用方式,可以在一個元件中註冊並使用子元件。

部署及最佳化

1Vue.js的圖文詳解

#當我們搞定整個Vue專案的前端編碼階段後,我們需要對我們的前端專案文件進行部署和最佳化工作,主要的幾個方式如下:

(1)使用webpack的DefinePlugin指定生產環境:透過plugin中的DefinePlugin配置,我們可以聲明'process.env '屬性為'development'(開發環境)或'production'(生產環境),結合npm設定檔package.json中scripts的指令來切換環境模式十分方便。

(2)使用UglifyJs自動刪除程式碼區塊內的警告語句:一般在生產環境的webpack設定檔中使用,透過new webpack.optimize.UglifyJsPlugin()來進行配置,刪除警告語句可以縮減檔案的體積。

(3)使用Webpack hash處理快取:當我們需要對發佈到線上的文件進行修改時,重新編譯的檔案名稱如果和先前版本的相同會引起瀏覽器無法識別而載入快取文件的問題。這樣我們需要自動的產生帶有hash值的檔名來阻止快取。詳見:https://segmentfault.com/a/1190000006178770#articleHeader7

(4)使用v-if減少不必要的元件載入:v-if指令其實很有用處,它可以讓我們項目中暫時不需要的元件不進行渲染,等需要用到的時候在渲染,例如某個彈跳窗元件等。這樣我們可以減少頁面首次載入的時間和檔案量。

除了以上幾點的優化,還有很多優化選擇,有興趣的童鞋可以好好了解下webpack的API文檔,畢竟webpack的功能十分強大。

資料驅動實例

1Vue.js的圖文詳解

總結

##本文以PPT圖片附加文字介紹的形式簡單介紹了Vue.js的知識點及開發流程,並將前端自動化、組件化、工程化的理念貫穿其中,由淺入深地闡述了Vue.js「簡單卻不失優雅,小巧而不發大匠」的獨特魅力

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

用Video.js實作H5直播介面

node.js的path模組詳解

以上是Vue.js的圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C到JavaScript:所有工作方式從C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。