1寂恬, v-show指令,v-if的區(qū)別
都是渲染指令邑飒。
v-show: 通過設(shè)置css的display值為none,block來 顯示或者隱藏喊暖;
v-if: 真實的刪除和增加DOM元素
2,如何讓css只在當前組件中起作用
每一個組件中都可以設(shè)置js劈狐、css罐孝,如果希望組件內(nèi)的css只對當前組件生效,增加scoped即可懈息,設(shè)置<style scoped> </style>
3肾档,指令keep-alive
如果把切換出去的組件保留在內(nèi)存中,可以保留它的狀態(tài)或避免重新渲染辫继,為此可以添加keep-alive指令
<keep-alive>
component...
</keep-alive>
應(yīng)用舉例: 新聞列表-> 詳情頁面->返回列表頁面怒见;
缺點: 并不能保證返回的位置,只能返回到頂部姑宽;
github上有個插件可應(yīng)用: vue-navigator
4遣耍, 組件的編寫方式
全局組件和局部組件
Vue.component('mine',{
template: '',
props: {}
})
var vm = new Vue({
el: '#app',
component: 'mine'
})
5, vuejs的特性及優(yōu)點
數(shù)據(jù)改變--> 視圖改變
視圖改變---> 數(shù)據(jù)改變
優(yōu)點:
低耦合
可重用
獨立開發(fā)
可測試性
虛擬dom
組件化
簡潔:頁面由HTML模板+Json數(shù)據(jù)+Vue實例組成
數(shù)據(jù)驅(qū)動:自動計算屬性和追蹤依賴的模板表達式
組件化:用可復(fù)用炮车、解耦的組件來構(gòu)造頁面
輕量:代碼量小舵变,不依賴其他庫
快速:精確有效批量DOM更新
模板友好:可通過npm,bower等多種方式安裝瘦穆,很容易融入
6纪隙,框架對比
Vue.js 和 AngularJS 之間的區(qū)別是什么?
下面是一些選擇Vue 而不是 Angular 的可能原因;
Vue.js 是一個更加靈活開放的解決方案扛或。它允許你以希望的方式組織你的應(yīng)用程序绵咱,而不是任何時候都必須遵循 Angular 制定的規(guī)則。它僅僅是一個視圖層熙兔,所以你可以將它嵌入一個現(xiàn)有頁面而不一定要做成一個龐大的單頁應(yīng)用悲伶。在結(jié)合其他庫方面它給了你更大的的空間艾恼,但相應(yīng),你也需要做更多的架構(gòu)決策麸锉。例如钠绍,Vue.js 核心默認不包含路由和 ajax 功能,并且通常假定你在用應(yīng)用中使用了一個外部的模塊構(gòu)建系統(tǒng)花沉。這可能是最重要的區(qū)別
在API 和內(nèi)部設(shè)計方面柳爽,Vue.js 比 Angular 簡單得多, 因此你可以快速地掌握它的全部特性并投入開發(fā)。
Vue.js 擁有更好的性能主穗,因為它不使用臟檢查泻拦。當 watcher 越來越多時, Angular 會變得越來越慢,因為作用域內(nèi)的每一次數(shù)據(jù)變更忽媒,所有的 watcher 都需要被重新求值争拐。Vue 則根本沒有這個問題,因為它采用的是基于依賴追蹤的觀察系統(tǒng)晦雨,所以所有的數(shù)據(jù)變更觸發(fā)都是獨立的架曹,除非它們之間有明確的依賴關(guān)系。
Vue.js 中指令和組件的概念區(qū)分得更為清晰闹瞧。指令只負責(zé)封裝 DOM 操作绑雄,而組件代表一個自給自足的獨立單元 —— 它擁有自己的視圖和數(shù)據(jù)邏輯。在 Angular 中它們兩者間有不少概念上的混淆奥邮。
Vue.js 和 React.js 有什么區(qū)別?
React.js 和 Vue.js 確實有一些相似——它們都提供數(shù)據(jù)驅(qū)動万牺、可組合搭建的視圖組件。然而洽腺,它們的內(nèi)部實現(xiàn)是完全不同的脚粟。React 是基于 Virtual DOM——一種在內(nèi)存中描述 DOM 樹狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。React 中的數(shù)據(jù)通常被看作是不可變的蘸朋,而 DOM 操作則是通過 Virtual DOM 的 diff 來計算的核无。與之相比,Vue.js 中的數(shù)據(jù)默認是可變的藕坯,而數(shù)據(jù)的變更會直接出發(fā)對應(yīng)的 DOM 更新团南。相比于 Virtual DOM,Vue.js 使用實際的 DOM 作為模板炼彪,并且保持對真實節(jié)點的引用來進行數(shù)據(jù)綁定吐根。
Virtual DOM 提供了一個函數(shù)式的描述視圖的方法,這很 cool辐马。因為它不使用數(shù)據(jù)觀察機制佑惠,每次更新都會重新渲染整個應(yīng)用,因此從定義上保證了視圖通與數(shù)據(jù)的同步齐疙。它也開辟了 JavaScript 同構(gòu)應(yīng)用的可能性膜楷。
實話實說,我自己對React 的設(shè)計理念也是十分欣賞的贞奋。但 React 有一個問題就是組件的邏輯和視圖結(jié)合得非常緊密赌厅。對于部分開發(fā)者來說,他們可能覺得這是個優(yōu)點轿塔,但對那些像我一樣兼顧設(shè)計和開發(fā)的人來說特愿,還是更偏好模板,因為模板能讓我們更好地在視覺上思考設(shè)計和 CSS勾缭。JSX 和 JavaScript 邏輯的混合干擾了我將代碼映射到設(shè)計的思維過程揍障。相反,Vue.js 通過在模板中加入一個輕量級的 DSL (指令系統(tǒng))俩由,換來一個依舊直觀的模板毒嫡,且能夠?qū)⑦壿嫹庋b進指令和過濾器中。
React 的另一個問題是:由于 DOM 更新完全交由 Virtual DOM 管理幻梯,當你真的想要自己控制 DOM 是就有點棘手了(雖然理論上你可以兜畸,但這樣做時你本質(zhì)上在對抗 React 的設(shè)計思想)。對于需要復(fù)雜時間控制的動畫來說這就變成了一項很討人厭的限制碘梢。在這方面咬摇,Vue.js 允許更多的靈活性,并且有不少用 Vue.js 構(gòu)建的富交互實例