Vue速成學習筆記

這兩天速成了一下Vue,在這里記錄一下相關的筆記,之后有時間詳細學Vue的時候再來回顧一下!


一、Vue理解

1、Vue的核心特征:雙向綁定。

在網頁中,存在視圖和數據。在Vue之前,需要使用JavaScript編寫復雜的邏輯去操作DOM元素來實現視圖和數據的一致性。Vue把這個過程封裝了起來,使得我們可以更關心視圖和數據之間的關系而不是具體的代碼實現,這就是MVVM(Model-View-ViewModel)雙向綁定。

View就是用戶看到的內容,比如表單,輸入框;

Model就是View對應的數據,比如表單展示的內容對應的數據對象,輸入框中的內容對應的數據對象;

Vue之前,View展示的數據(用戶看到的)和它實際的數據(Model中存儲的),這二者的一致性需要程序員使用JavaScript來手動同步。

引入Vue之后,在原來的模式中加入了一個中介——ViewModel。我們只需要告訴ViewModel哪個View和哪個Model對應,當其中一個變化時,另一個就會同步變化,這就是MVVM的核心。

舉個例子,頁面中有一個表格Table,例如學生的信息表。在Vue之前,如果我們想刪除一條記錄,需要手動去操作DOM元素讓表格呈現的內容發生變化;同理,如果數據庫中這個表發生了變化,我們也要去手動修改添加上相關的記錄。

使用Vue之后,我們只需要把表格和其對應的數據綁定起來,當用戶對視圖(表格)進行了修改,變化會自動同步到ViewModel中,之后會自動更新到Model數據庫;同理,如果數據庫發生了變化,ViewModel也會自動同步相關的邏輯,讓用戶看到的視圖發生變化。

這個過程中對DOM元素的操作對程序員來說就變成透明的了,我們可以更關注怎么去實現好看的視圖以及把視圖和數據對應地綁定起來,而不必關心怎么對視圖和數據進行同步。


2、兩個指令和生命周期

①v-bind和v-model是兩個重要的指令。

v-bind通常用于單向數據綁定,適用于那些用戶不能修改的數據。例如把一個超鏈接綁定到數據上,那么用戶永遠只能點這個超鏈接,而不能去修改它。但是服務器可以通過修改Model來改變這個超鏈接的URL,從而使得用戶打開的頁面不同。例如點擊某個link時,服務器根據其他的信息來設置這個link具體的URL。

v-model則用于雙向綁定,適用于那些用戶可以修改內容的視圖。例如常見的管理系統,用戶可以對表格中的數據進行增刪改查,這就要求用戶操作完之后,變化要同步到Model中從而使得數據庫進行持久化;相應的,如果數據庫中的數據發生了變化,這個變化也應該同步到用戶所看到的View上。

簡單的區別就是:v-bind,View在等Model變化然后自己變化;v-model,View和Model都可以變化并引起對方同步變化。

②Vue的生命周期。

Vue的生命周期共有四段:創建、掛載、更新和銷毀。在每一段的前后(before和after)都可以為Vue定義一些行為,稱為鉤子函數,這樣的鉤子函數一共有八個。

其中比較重要的是掛載(mounted),當Vue實例被掛載后就會執行這個函數的內容。例如可以設置為展示用戶數據的Vue,在掛載好之后即從數據庫獲取最新的數據并展示。


二、Vue流程

上圖是一個新建好的Vue項目框架,這里按照瀏覽器的訪問情況介紹一下Vue的流程。

1、瀏覽器會首先訪問index.html,index.html里面什么也沒有,body里只有一個id為app的div。

index.html會默認引入main.js,所以瀏覽器會在訪問index.html執行main.js的相關內容。

2、main.js關鍵就是:

new Vue({router, // ES6: router: router,屬性名和屬性名之后的名字一樣的時候,可以簡寫為屬性名render: h => h(App)
}).$mount('#app')
// 1. new Vue({...}) 創建一個Vue實例
// 2. $mount('#app') 將該Vue實例掛載到頁面中id為app的元素上,即該實例會替換該元素內的內容
// 3. router是一個路由對象,用于管理頁面的路由
// 4. render: h => h(App) 是一個渲染函數,用于指定如何渲染頁面,這里的App是一個Vue組件
//   4.1 h(App):調用 h 函數(createElement 函數),傳入 App 組件作為參數,這意味著 App 組件將作為根組件被渲染。
//   4.2 Vue 會使用這個組件來構建整個應用程序的 VDOM(虛擬 DOM) 樹

也就是說,執行完main.js之后,會有一個Vue實例被掛載到index.html的id為app的div上,即會替換掉它,因此我們所看到的實際上是這個Vue實例中的內容,而這個Vue實例在渲染時使用的是App組件,這個App組件就是我們在上面導入的App.vue。

3、App.vue展示網頁的實際內容,它被被導入到main.js,并作為組件被渲染到index.html中。

總結:流程就是:index.html->main.js->App.vue。我們看到的實際上是App.vue的內容。

我們之后的前端工程化開發就是在App.vue里面放我們自己寫的vue,從而完成前端的視圖展示和其與數據的同步。


三、ElementUI

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14472.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14472.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web前端面試題

web前端面試題 1、前端如何實現優化性能 (1)減少網絡時間 ①使用DNS緩存技術 ? ②減少需要傳輸的文件尺寸 ? ③加快文件傳輸速度 (2)減少發送的請求數量 ①利用瀏覽器緩存 ? ②使用合并的圖片文件 (3)提高瀏覽器下載的并發度 ①JS文件放在HTML文檔最后 ? ②使用多個域名 (…

音視頻及H264/H256編碼相關原理

一、音視頻封裝格式原理: 我們播放的視頻文件一般都是用一種封裝格式封裝起來的,封裝格式的作用是什么呢?一般視頻文件里不光有視頻,還有音頻,封裝格式的作用就是把視頻和音頻打包起來。 所以我們先要解封裝格式&#…

谷歌上架,個人號比企業號好上?“14+20”封測如何解決,你知道了嗎

在Google Play上架應用,對開發者而言,既是挑戰也是機遇。隨著谷歌政策的不斷更新,特別是要求2023年11月13日后注冊的個人開發者賬號在發布正式版應用前,必須經過20人連續14天的封閉測試。 這一政策的改變使得許多開發者開始考慮使…

什么是物聯網通信網關?-天拓四方

在信息化、智能化的時代,物聯網技術的廣泛應用正在逐漸改變我們的生活方式。物聯網通過各種傳感器和設備,將現實世界與數字世界緊密相連,從而實現智能化、自動化的生活和工作方式。作為物聯網生態系統中的重要組成部分,物聯網通信…

【數據結構】堆(Heep)

???專欄:數據結構 🧑?🎓個人主頁:SWsunlight 目錄 一、堆: 定義: 性質: 大、小根堆: 二、實現堆(完全二叉樹): 前言: …

四、Filter

Filter簡介 Filter 的基本功能是對Servlet容器調用Servlet的過程進行攔截,從而在Servlet進行響應處理的前后實現一些特殊的功能.在Servlet API 中定義了三個接口類來供開發人員編寫Filter 程序:Filter,FilterChain,FilterConfigFilter 程序是一個實現了…

Spring:Spring事務失效的各種場景以及解決方法

一、前言 Spring事務是指Spring框架中提供的事務管理功能,它可以幫助開發者簡化事務管理的復雜性,提高代碼的可維護性和可擴展性。本文將總結并分析Spring事務失效的各種場景,幫助你全面了解事務失效的原因和解決方案。 二、Spring事務失效的…

51匯編--數碼管顯示

;將內部RAM30H~32H單元中存儲的6位十進制數顯示在6個數碼管上。 ;要求編寫將一個內存單元中的壓縮BCD碼轉換為兩個七段顯示碼的子程序和 ;延時子程序。不允許在程序中給30H、31H和32H單元賦值,要通過存 ;儲器窗口賦值。嘗試改變點亮數碼管的時間&#xf…

Linux軟硬鏈接及動靜態庫

軟硬鏈接與動靜態庫 軟連接 創建鏈接的方法: ln -s test1.txt test2.txt 其中ln 是link(鏈接),-s 是soft(軟),后者鏈接前者。 此時打開test2.txt,發現其中內容與test.txt一致。那么軟連接到底建立了什么聯系?…

輕松購物,盡在購物網

在忙碌的生活中,想要找到心儀的商品,卻總是苦于沒有時間和精力去實體店挑選?別擔心,購物網為您提供一站式的購物體驗。無論是時尚服飾、家居用品,還是美食特產,這里都能滿足您的需求。只需輕輕一點&#xf…

監聽element-ui表格滾動事件

當element-ui表格高度寫死之后,表格內容超出高度就會在右側顯示滾動條,監聽滾動事件 首先給表格加ref,ref"refTable" 然后在mounted生命周期里寫監聽事件 mounted() {this.$refs.refTable.$el.onwheel (e) > {console.log(滾…

深入解析線程上下文切換的原理與優化策略

深入解析線程上下文切換的原理與優化策略 定義觸發條件線程上下文切換的過程線程上下文切換的開銷減少上下文切換的方法示例代碼總結 線程上下文切換(Thread Context Switch)是操作系統調度機制的重要組成部分。它涉及保存當前線程的狀態并恢復新線程的狀…

vue中使用ant的rangePicker設置禁選時間和時間格式

<a-range-pickerstyle"width: 100%":disabled-date"disabledDate"v-model:value"time"valueFormat"YYYY-MM-DD" />valueFormat設置時間格式YYYY-MM-DD 通過dayjs獲取時間&#xff0c;return過濾后的時間 const disabledDate (…

安裝apex時遇到的問題

Apex是混合精度庫&#xff0c;安裝過程中常常出現各種問題&#xff0c;在此記錄一下 首先&#xff0c;不能使用pip install apex,這是兩個完全不同的庫&#xff0c;需要去官網下載 其次&#xff0c;參考官網安裝時可能會報錯&#xff1a;could not build wheels for apex, whic…

C/C++運行時庫和UCRT系統通用運行時庫總結及問題實例分享

目錄 1、概述 2、不同版本的Visual Studio對應的運行時庫說明 3、在Windbg10.0安裝目錄中獲取UCRT通用運行時庫 4、微軟官網對UCRT通用運行時庫的相關說明 5、使用Visual Studio 2017開發軟件初期遇到的UCRT通用運行時庫問題 6、如何查看軟件依賴了哪些C/C運行時庫&#…

后端雪花算法主鍵ID傳到前端變了

Mybatis Plus 的主鍵策略&#xff1a; /*** id*/TableId(type IdType.ASSIGN_ID)private Long id; 這個主鍵策略會用雪花算法生成一個 19位的ID&#xff0c;比如 1791006670084734978 現象 后端生成的 id 是正常的&#xff0c;通過 swagger 文檔此時獲取到的 id 也和數據庫中…

leetcode-盛水最多的容器-109

題目要求 思路 1.正常用雙循環外循環i從0開始&#xff0c;內循環從height.size()-1開始去計算每一個值是可以的&#xff0c;但是因為數據量太大&#xff0c;會超時。 2.考慮到超時&#xff0c;需要優化一些&#xff0c;比如第一個選下標1&#xff0c;第二個選下標3和第一個選下…

Java 面試題日常練習

### 基礎知識 1. **什么是 JVM&#xff1f;解釋其架構。** - JVM&#xff08;Java Virtual Machine&#xff09;是 Java 程序的運行時環境。其架構包括類加載器子系統、運行時數據區&#xff08;堆、棧、本地方法棧、PC 寄存器、方法區&#xff09;、執行引擎和本地方法接口…

心識宇宙 x TapData:如何加速落地實時數倉,助力 AI 企業智慧決策

使用 TapData&#xff0c;化繁為簡&#xff0c;擺脫手動搭建、維護數據管道的諸多煩擾&#xff0c;輕量代替 OGG、DSG 等同步工具&#xff0c;「CDC 流處理 數據集成」組合拳&#xff0c;加速倉內數據流轉&#xff0c;幫助企業將真正具有業務價值的數據作用到實處&#xff0c…

基于springboot實現華府便利店信息管理系統項目【項目源碼+論文說明】計算機畢業設計

基于springboot實現華府便利店信息管理系統演示 摘要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本華府便利店信息管理系統就是在這樣的大環境下誕生&#xff…