什么是 MVVM、mvc 模型??
MVVM 是通過分離數(shù)據(jù)、視圖和邏輯,使得前端開發(fā)更模塊化、可維護,并提高開發(fā)效率的設計模式。
常用的vue指令,修飾符
vue指令:? v-bind、v-model、v-on、v-if
修飾符:.stop?.once .prevent
vue父子組件的通信
父傳子組件 子組件通過 props 來接收
子傳父通過自定義事件($emit)自定義事件傳遞
數(shù)組的操作
arr.push(4);// 末尾添加,返回新長度
arr.pop();// 刪除末尾,返回被刪元素
arr.unshift(0);// 頭部添加,返回新長度
arr.shift();// 刪除頭部,返回被刪元素
arr.splice(2,1,'a','b');// 從索引2開始刪除1個,插入'a','b'
變量的聲明差異
var?是函數(shù)作用域,且變量提升,可能會導致不易察覺的錯誤。
let?和?const?是塊級作用域,支持更嚴格的變量管理,且不在提升階段初始化。
const?用于聲明常量,不能被重新賦值,而?let?則可以重新賦值。
let?和?const?的塊級作用域特點使它們在閉包和循環(huán)中表現(xiàn)得更加符合預期。
瀏覽器緩存的不同
Cookie 數(shù)據(jù)會隨請求發(fā)送到服務器,而 LocalStorage 僅在瀏覽器端可用
Cookie 大小限制為 4KB,LocalStorage 約 5MB
Cookie 可設置路徑和域名,LocalStorage 僅與當前域名關聯(lián)
vue路由的實現(xiàn)原理
Vue Router 的核心原理是通過定義路由表、監(jiān)聽瀏覽器地址的變化、匹配路由并渲染組件,來實現(xiàn)頁面的切換
v-model的原理
v-model在表單控件上的工作原理可以分為兩個部分:
屬性綁定:使用v-bind指令將Vue實例的數(shù)據(jù)綁定到表單元素的value屬性上。
事件監(jiān)聽:使用v-on指令監(jiān)聽表單元素的input事件,當用戶輸入時,將新的值賦給綁定的數(shù)據(jù)。
vue3 為什么使用proxy
1、defineProperty 局限性,只能針對單例屬性做監(jiān)聽。
2、Vue2 中對data中的屬性,做了遍歷和遞歸,為每個屬性設置了getter和setter
3、這樣就導致VUE只能對data中預定義過的屬性做出響應的原因
4、如果直接添加一個不存在的話,是無法做到setter監(jiān)聽的Proxy 是針對整個對象的,那么對這個對象的所有操作,都會進入監(jiān)聽,就可以代理所5、有的屬性帶來很大的性能提升和代碼優(yōu)化
6、Proxy可以理解成,對源對象做了一層攔截,外界對這個對象的訪問,都必須經過這層攔截,因此提供了一個機制,可以對外界的訪問進行過濾和修改
get和post的區(qū)別
請求參數(shù)長度限制不同,回退和刷新不同、歷史記錄不同
狀態(tài)碼
一、1xx 信息性狀態(tài)碼
二、2xx 成功狀態(tài)碼
三、3xx 重定向狀態(tài)碼
四、4xx 客戶端錯誤狀態(tài)碼
五、5xx 服務器錯誤狀態(tài)碼
前端做的性能優(yōu)化
圖片懶加載 減少 dom操作 減少網絡請求 異步編程 代碼分割 路由懶加載 使用 webp格式
一個html文件到網頁上呈現(xiàn)的過程
當用戶輸入網頁地址的時候,瀏覽器會先查看本地緩存有沒有沒過期的網頁歷史,如果沒有
就會通過本地DNS服務器來解析出IP地址,當域名和服務器的IP地址匹配上,瀏覽器就會嘗試和服務器建立TCP鏈接,瀏覽器先向服務器發(fā)起一個申請連接的包,服務器收到后會回復一個同意包,瀏覽器收到后再回復一個確認的包,此時 TCP 連接就建立成功了。
連接成功后,瀏覽器會像服務器發(fā)起請求,hared,或者get post請求,服務器收到后會給瀏覽器返回一個包,這個包包含了狀態(tài)碼,瀏覽器會根據(jù)狀態(tài)碼來解開,然后渲染div等dome節(jié)點,隨后 再加載css 和js這些文件,最后就呈現(xiàn)出了 用戶看到的網頁。
入一個地址 到瀏覽器 到呈現(xiàn)內容到頁面的過程
1、用戶輸入 URL?
2、 DNS解析
3、建立TCP連接
4、發(fā)送http請求
5、服務器響應
6、瀏覽器開始渲染頁面(接收html 渲染html 解析css 繪制)
7、js執(zhí)行
8、資源加載
9、渲染完成
10、關閉鏈接