什么是Vue.js?


它是一个构建网页的Javascript的一个库,你可以理解为它是一个框架,便于开发,Vue.js与Javascript的关系可以类比为django与python之间的关系。它提供一种开发的便利性。它是一个Javascript的MVVM库(model - view -viewmodel).


它具有一个功能特性,虚拟DOM(Virtual dom).


什么是虚拟DOM?

首先需要知道的是传统的JS对DOM进行的操作流程:JS会找到这个DOM节点进行对应语句操作,要明白的是如果一个网页中有成千上万的节点,JS每次进行DOM操作都需要去找这个节点。那么用传统方法对DOM进行操作花费的成本都是很大的。比如下面的这个代码方法:

<script type="text/javascript">
var NewNode = document.createElement('li');
		var textNode = document.createTextNode('this is new!');
		NewNode.appendChild(textNode);
		document.getElementById('mylist').appendChild(NewNode);
</script>



然而在Vue.js中,你首先要明白在JS中,一切皆对象,把这个节点对象化,并且对这个对象进行操作即可。比如我们要往这个ul中增加一个li。下面是DOM操作前后效果图。

<ul id="mylist">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>



现在用JS去对象化这个ul节点。


let domNode = {
    tag:'ul'
    attributes:{id:'mylist'}
    children:[
    //此处就是li对象了
    ]
};
domNode.children.push('<ul>hh!</ul>');//对JS对象化的虚拟DOM节点进行操作。
sync(originalDomNode,domNode);//异步原DOM即可更新节点。