1 .Vue是基于DOM的模板垫释,每個(gè)Vue實(shí)例都關(guān)聯(lián)著一個(gè)相應(yīng)的dom元素,當(dāng)一個(gè)Vue實(shí)例被創(chuàng)建時(shí)撑瞧,他會(huì)遞歸根元素所有的子節(jié)點(diǎn)棵譬,完成必要的數(shù)據(jù)綁定,當(dāng)這個(gè)視圖被編譯后预伺,他就會(huì)自動(dòng)完成相應(yīng)的數(shù)據(jù)變化订咸,選這個(gè)模板的大小是會(huì)影響性能的曼尊,只是保留一個(gè)new Vue()還是分成許多小的呢?
2 .使用vue的時(shí)候脏嚷,除了自定義指令骆撇,幾乎不需要操作dom,當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候父叙,視圖會(huì)自動(dòng)觸發(fā)更新神郊,也就是說所有的視圖改變都是依靠數(shù)據(jù)指導(dǎo)
3 .Vue構(gòu)造函數(shù)
1.每一次初始化Vue實(shí)例,都需要傳遞一個(gè)選項(xiàng)對(duì)象趾唱,每一個(gè)Vue實(shí)例本質(zhì)上就是一個(gè)View Model涌乳,他有以下東西。
2.vm.$el:每一個(gè)實(shí)例都有一個(gè)dom節(jié)點(diǎn)甜癞,一旦在實(shí)例化中提供el選項(xiàng)夕晓,vue實(shí)例就會(huì)立即進(jìn)入編譯階段。vue會(huì)遞歸遍歷模板中的dom節(jié)點(diǎn)并且手機(jī)其中的指令悠咱,將數(shù)據(jù)和這些指令所對(duì)應(yīng)的dom節(jié)點(diǎn)連接起來蒸辆,一旦連接完畢,這些dom節(jié)點(diǎn)就算正式被Vue實(shí)例接管了析既。
3.vm.$data:每一個(gè)實(shí)例都有一個(gè)數(shù)據(jù)對(duì)象躬贡,數(shù)據(jù)對(duì)象并不一定只能被一個(gè)Vue實(shí)例觀察,可以多個(gè)Vm實(shí)例觀察同一個(gè)對(duì)象渡贾,當(dāng)多個(gè)組件需要共享一些全局狀態(tài)時(shí)逗宜,這個(gè)特性非常有用(Vuex原理?)
4 .watch和computed都是以Vue的依賴追蹤機(jī)制為基礎(chǔ)空骚,當(dāng)某一個(gè)依賴數(shù)據(jù)發(fā)生改變纺讲,所有依賴這個(gè)數(shù)據(jù)的“相關(guān)”的“數(shù)據(jù)”發(fā)生改變,也就是自動(dòng)調(diào)用相關(guān)的函數(shù)實(shí)現(xiàn)變動(dòng)
1.computed:具有緩存囤屹,計(jì)算屬性基于他們特性的依賴進(jìn)行緩存熬甚,只有在他的相關(guān)依賴發(fā)生改變才會(huì)重新求值。和數(shù)據(jù)類型是同一類型肋坚,獲取這個(gè)值的方法乡括,使用方法,不要把它當(dāng)成一個(gè)函數(shù)調(diào)用智厌,和看成是一個(gè)函數(shù)诲泌。
2.watch:觀察一個(gè)特定的值,當(dāng)該值發(fā)生變化時(shí)執(zhí)行特定的函數(shù)铣鹏。監(jiān)聽機(jī)制和事件機(jī)制敷扫,當(dāng)這個(gè)數(shù)據(jù)改變這個(gè)特殊事件被觀察到,那么它對(duì)應(yīng)的函數(shù)相當(dāng)于怎么處理诚卸。
5 .虛擬dom
1.原理:他通過js對(duì)象模擬原生的Dom葵第,加上DOM diff極大地的提升了dom操作的性能绘迁。
2.意義:抽象。對(duì)dom層進(jìn)行了一層抽象卒密。也就是說Virtual可以在下一次編譯成dom的時(shí)候缀台。順便編譯成window,mac對(duì)應(yīng)的ui組件
3.思想:用js表示dom結(jié)構(gòu),包括標(biāo)簽哮奇,屬性和子節(jié)點(diǎn)膛腐。那不就是頁面渲染之前的那一部分么?回退了一部分屏镊。根據(jù)虛擬dom節(jié)點(diǎn)的屬性和子節(jié)點(diǎn)遞歸的構(gòu)建出真實(shí)的dom樹依疼,當(dāng)頁面發(fā)生狀態(tài)改變需要操作dom的時(shí)候,我們可以先通過虛擬dom計(jì)算產(chǎn)生真實(shí)的最小修改量而芥,然后修改真實(shí)的dom結(jié)構(gòu),深度優(yōu)先遍歷的過程產(chǎn)生了用于記錄兩棵樹之間差異的數(shù)據(jù)結(jié)構(gòu)
-
組件化
7 .代碼規(guī)范
8 .for循環(huán)
9 .生命周期函數(shù):1.beforeCreate:添加loading函數(shù)膀值。一般都是以數(shù)據(jù)為標(biāo)識(shí)決定loading函數(shù) 2.created:創(chuàng)建實(shí)例之后同步調(diào)用棍丐。data可以使用,函數(shù)自執(zhí)行沧踏,數(shù)據(jù)觀測歌逢,屬性和方法運(yùn)算,watch翘狱、event事件回調(diào)秘案。加載ajax和使用數(shù)據(jù) 3.beforeMount:el找到vertiual dom先把位置占住,render函數(shù)首次使用潦匈,完成了el和data的初始化 4.Mount:把值渲染到頁面里面阱高,el被替換成html,完成掛載 5.beforeUpdate:數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬dom重新渲染和打補(bǔ)丁之前 6.beforeDestory:銷毀前狀態(tài) 7.activated: keep-alive組件激活時(shí)調(diào)用 8.deactivated: keep-alive組件被停用時(shí)調(diào)用
10 .data:Vue實(shí)例的數(shù)據(jù)對(duì)象,Vue會(huì)遞歸的將data的屬性轉(zhuǎn)換為getter茬缩、setter赤惊,從而讓data的屬性能夠響應(yīng)數(shù)據(jù)變化
11 .el:提供的元素只能作為掛載點(diǎn),所有掛載元素都會(huì)被Vue生成dom樹替換凰锡,因此不推薦掛載root實(shí)例到html未舟,body上面