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) 代替。