vue篇 什么是vue

一、什么vue
  (一)vue渐进式JavaScript框架
  (二)特点:数据进行驱动(mvvm)
  (三)两大核心:虚拟DOM,双向绑定
(一)那么什么是渐进式框架呢
简单的来讲渐进式框架就是 你用什么就可以拿什么
在这里插入图片描述
在上面和张图里可以看到vue的一些核心功能,但是你同样不必引入所有的模块进行工作,
你可以只用v-model等一些简单的指令进行使用,vue不强求你一次性接受并使用它的全部功能特性

(二) 数据进行驱动(mvvm)
vue是如何用数据进行驱动的呢?

  1. vuejs帮我们封装了数据和dom对象操作的映射,我们只需要关心数据的逻辑处理,数据的变化就能够自然的通知页面进行页面的重新渲染。
  2. Vuejs的数据驱动是通过MVVM这种框架来实现的。MVVM框架主要包含3个部分:model、view和 viewmodel。数据(Model)和视图(View)是不能直接通讯的,而是需要通过ViewModel来实现双方的通讯。当数据变化的时候,viewModel能够监听到这种变化,并及时的通知view做出修改。同样的,当页面有事件触发时,viewModel也能够监听到事件,并通知model进行响应。

能看出来Viewmodel就相当于一个观察者,监控着双方的动作,并及时通知对方进行相应的操作。
那么问题来了vue里面是如何进行观察的model 和 view的呢

在这里插入图片描述
首先,vuejs在实例化的过程中,会遍历传给实例化对象选项中的data 选项,遍历其所有属性并使用 Object.defineProperty 把这些属性全部转为 getter/setter。

同时每一个实例对象都有一个watcher实例对象,他会在模板编译的过程中,用getter去访问data的属性,watcher此时就会把用到的data属性记为依赖,这样就建立了视图与数据之间的联系。当之后我们渲染视图的数据依赖发生改变(即数据的setter被调用)的时候,watcher会对比前后两个的数值是否发生变化,然后确定是否通知视图进行重新渲染。

这样就实现了所谓的数据对于视图的驱动。通俗地讲,它意味着我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。一旦创建了绑定,DOM 将与数据保持同步。每当修改了数据,DOM 便相应地更新。这样我们应用中的逻辑就几乎都是直接修改数据了,不必与 DOM 更新搅在一起。这让我们的代码更容易撰写、理解与维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值