vue
vue 是一個(gè)以數(shù)據(jù)驅(qū)動(dòng)視圖的輕量級(jí)漸進(jìn)式 MVVM 框架。
vue 不用直接操作 dom,而是用數(shù)據(jù)來(lái)控制元素的變化。
vue優(yōu)點(diǎn)(模塊化開(kāi)發(fā),組件復(fù)用,開(kāi)發(fā)效率快)
(1)輕量級(jí)的框架+指令:
它通過(guò)雙向數(shù)據(jù)綁定把 View 層和 Model 層連接了起來(lái).實(shí)際的 DOM 封裝和輸出。
(2)雙向數(shù)據(jù)綁定:
當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候,視圖也就發(fā)生變化,當(dāng)視圖發(fā)生變化的時(shí)候,數(shù)據(jù)也會(huì)跟著
同步變化。
(3)組件化開(kāi)發(fā):
就是把頁(yè)面拆分成多個(gè)組件,每個(gè)組件依賴(lài)的 CSS、JS、模板、圖片等資源放在一起
開(kāi)發(fā)和維護(hù)。
(4)單頁(yè)面路由:
單頁(yè)是把原本的多個(gè)頁(yè)面以組件的形式集成在一個(gè)頁(yè)面中,頁(yè)面跳轉(zhuǎn)時(shí)由 vue 路由到目
標(biāo)頁(yè)面,分別加載不同的組件,而頁(yè)面不會(huì)刷新,路由在更新
(5)虛擬 dom:
在 Vue 的底層實(shí)現(xiàn)上, Vue 將模板編譯成虛擬 DOM 渲染函數(shù)。結(jié)合 Vue 自帶的響應(yīng)
系統(tǒng),在狀態(tài)改變時(shí) ,Vue 能夠智能地計(jì)算出重新渲染組件的最小代價(jià)并應(yīng)到 DOM
操作上。
(6)漸進(jìn)式框架:
我們可以只用 vue 中一小部分去開(kāi)發(fā),而不是說(shuō)用了 vue 就必須全部使用 vue 的語(yǔ)法??梢宰屛覀兟囊稽c(diǎn)點(diǎn)的接受 vue 開(kāi)發(fā)項(xiàng)目。
也就是用你想用或者能用的功能特性,不想用的部分功能可以先不用,來(lái)完成一個(gè)開(kāi)發(fā)。
(7)數(shù)據(jù)和結(jié)構(gòu)的分離:
最小力度更新,vue 每次更新會(huì)進(jìn)行虛擬 dom 和屏幕已有 dom 對(duì)比,只更新有變化
的部分,性能更高
(8)插件化:
插件的功能范圍沒(méi)有嚴(yán)格的限制,滿足大多插件可以和 vue 配合一起使用。
vue的缺點(diǎn)
(1)首屏加載速度沒(méi)有靜態(tài)頁(yè)面快,
(2)因?yàn)?dom 都是 js 生成的,導(dǎo)致 seo 爬蟲(chóng)不友好,頁(yè)面被爬取的機(jī)率特別小。
(3)因?yàn)槭菃雾?yè)面應(yīng)用,不利于 seo 優(yōu)化