Vue概况

2017-07-16  本文已影响0人  Miss_麦兜

Vue是什么?

Vue本身不是一个框架,Vue结合周边生态构成一个渐进式框架。所谓渐进式就是你需要用什么,就引入相应的插件,由浅入深。


Vue核心思想

MVVM

Vue中的MVVM

Vue通过MVVM实现数据绑定和自动同步。View层就是视图层,即DOM,ViewModel是创建的vue实例,Model是模型层,即原生js对象。当用户发生了一个行为修改了DOM元素之后,这个修改的行为会被ViewModel监听,ViewModel监听到之后,会去修改Model的数据,最后通过ViewModel的数据拼装,改变View。

MVVM优点

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,并且Model 和 ViewModel 之间的交互是双向的。因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

Vue如何实现双向数据绑定?

Vue.js 是采用 Object.defineProperty 的 getter 和 setter,并结合观察者模式来实现数据绑定的。getter在获取值时触发, setter在修改值时触发。

  <input type="text" id="username">
  <br>
  <span id="uname"></span>

  <script>
    var obj = {};
    Object.defineProperty(obj, "username", {
        get(){
            console.log('get')
        },
        set(val){
            document.getElementById("uname").innerText =val;
            document.getElementById("username").value =val;
            console.log('set')
        }
    });
    document.getElementById("username").addEventListener("keyup", (e)=> {
       //触发setter
       obj.username = e.target.value;
    });
  </script>

Vue和React对比

相同点

不同点

Vue:
React:
上一篇 下一篇

猜你喜欢

热点阅读