vue知識彙總

2021-09-16 14:30:40 字數 1296 閱讀 4900

先observe所有資料(產生subs資料陣列,get新增sub,set呼叫sub的notify方法【實際來自watch的update方法】),然後compile解析模板新增watcher(給資料物件新增監聽事件)

就是重寫了原生push等陣列方法

支援__proto__和不支援兩種情況

可以直接用this.$store.state讀取資料

1. vuex除了提供全域性變數

2. 抽象業務邏輯,減少重複**;比如非同步獲取的資料,不需要每個地方都寫請求介面的**,只需要store.dispatch('actionname')

3. 統一資料**;乙個資料可能來自:1.服務端 2.web socket的推送 3.響應使用者操作之後對資料執行的運算子操作;沒有使用vuex,你要在不同的地方寫這三種其一的獲取/修改資料的**,而使用vuex只需要一句store.dispatch('actionname')要不要使用vuex

4. 便於devtool追蹤除錯vuex

eventbus是vue的例項,emit,on多了以後不好管理業務邏輯

vuex太大,小專案用起來不方便

後面 hash 值的變化,並不會導致瀏覽器向伺服器發出請求,瀏覽器不發出請求,也就不會重新整理頁面。另外每次 hash 值的變化,還會觸發

hashchange這個事件

14年後,因為html5標準發布。多了兩個 api,pushstate和 

replacestate,通過這兩個 api 可以改變 url 位址且不會傳送請求。同時還有

popstate事件。通過這些就能用另一種方式來實現前端路由了,但原理都是跟 hash 實現相同的。用了 html5 的實現,單頁路由的 url 就不會多出乙個#,變得更加美觀。但因為沒有 # 號,所以當使用者重新整理頁面之類的操作時,瀏覽器還是會給伺服器傳送請求。為了避免出現這種情況,所以這個實現需要伺服器的支援,需要把所有路由都重定向到根頁面。

原理:在 created 函式呼叫時將需要快取的 vnode 節點儲存在 this.cache 中/在 render(頁面渲染) 時,如果 vnode 的 name 符合快取條件(可以用 include 以及 exclude 控制),則會從 this.cache 中取出之前快取的 vnode 例項進行渲染。

缺點:首次渲染大量dom時,由於多了一層虛擬dom的計算,會比innerhtml插入慢。

所以key值是在dom樹進行diff演算法時候發揮作用。乙個是用來判斷新舊vnode是否為同乙個,從而進行下一步的比較以及渲染。另外乙個作用就是判斷元件是否可以復用,是否需要重新渲染。

vue2 0知識點彙總

vue簡介 資料流vue例項物件 vue常用指令 class結合v bind使用 methods 和 v on的使用 v on高階用法 v for的使用 簡單學生新增刪除案例 父子元件使用父傳子 父元件向自元件傳遞資料 子元件向父元件通訊vuebus vue高階 vue過濾器 獲取dom元素 vue...

2020前端知識點彙總 五 vue

1 vue的元件通訊?2 vuex?3 vue的雙向繫結?4 解釋computed watch methods?5 v show和v if指令的共同點和不同點?6 巢狀路由怎麼定義?8 vuex是什麼?怎麼使用?哪種功能場景使用它?9 axios是什麼?怎麼使用?描述使用它實現登入功能的流程?10 ...

Vue問題彙總

通過watch解決 vue中資料的非同步載入 1.通過watch computed 2.在元件生命週期中的created階段接收資料,後面操作可正常拿到資料 3.使用async await,注意await後面要接promise物件才生效,示例 async get region statistic t...