create和mounted 的區別javascript
在created()鉤子函數執行的時候DOM 其實並未進行任何渲染,而此時進行DOM操做無異於徒勞,因此此處必定要將DOM操做的js代碼放進Vue.nextTick()的回調函數中。與之對應的就是mounted()鉤子函數,由於該鉤子函數執行時全部的DOM掛載和渲染都已完成,此時在該鉤子函數中進行任何DOM操做都不會有問題 。css
參考html
爲何使用vue,首先要看和其餘框架React/Angular的對比vue
React 的特別是使用 JSX,有些人喜歡用,有些人不喜歡?看它的語法就知道java
ReactDOM.render(
<div> <h1>{1+1}</h1> </div>
,
document.getElementById('example')
);
var myStyle = {
fontSize: 100,
color: '#FF0000'
};
ReactDOM.render(
<h1 style = {myStyle}>菜鳥教程</h1>,
document.getElementById('example')
);
ReactDOM.render(
<div> <h1>{i == 1 ? 'True!' : 'False'}</h1> </div>
,
document.getElementById('example')
);
複製代碼
特色算法
不足框架
參考異步
雙向綁定原理:依賴收集、發佈訂閱函數
官方用法:在下次 DOM 更新循環結束以後執行延遲迴調。在修改數據以後當即使用這個方法,獲取更新後的 DOM。工具
原理:相似Event-loop 的異步隊列,DOM更新是異步的。當即操做data數據DOM不會當即更新,而是等同步任務執行完以後,從異步任務隊列中取出異步任務,放到執行棧中執行。
Vue 在內部對異步隊列嘗試使用原生的 Promise.then、MutationObserver 和 setImmediate,若是執行環境不支持,則會採用 setTimeout(fn, 0) 代替。