美文网首页
vue实现数据响应式的过程

vue实现数据响应式的过程

作者: 做个大树吧 | 来源:发表于2018-10-14 10:49 被阅读0次

1.怎样更形象的解释vue.js的响应式系统?

在前端框架中,vue.js的灵魂所在就是其“数据响应式”,简单的描述,就是当数据改变后,vue会告诉视图部分,根据数据的改变做出相应的改变,这直接导致vue使用起来灵活,深受欢迎。

视图层做出相应的反应,需要用双括号把数据括起来,当data中的数据做出改变时候,视图层的数据做出反应,可以直接在html中渲染出来。

一个简单的例子:

<div id="app">

 {{ message }}

</div>

varapp =newVue({

el:'#app',

 data: {

message:'Hello Vue!'

 }

})

在以上的代码中,代码运行以后,会自动将Hello Vue显示到网页上,将data中的message数据改变之后,重新执行代码,网页便会做出相应,渲染出新的页面,这就是“响应式系统”。

2.搞清楚原理

在以上里例子中,并不需要改变DOM的数据,html就会做出改变,看起来太神奇了,简直有一点玄幻的感觉,那就要完全搞清楚这么牛逼的过程是怎样实现的?

Vue的响应模式是一种观察者模式,data中的数据改变的时候会被观察者观察到,然后做出相应的反应,根据观察到data改变后的数据重新渲染浏览器,做出响应。

这个关系可以以下关系式来表示:

data -> watcher

     data - dep -> watcher

dip={

id:number,

subs:watchers,

}

用watcher表示观察者,deta就是被观察者,两者之间形成一种依赖关系。Vue的作者设计了一个dip对象来表示这种依赖关系,

dep 由唯一标识属性 id和用于记录所有观察者的 subs组成,所有的dip对象共同构成一个dips对象(这里是一个数组,特殊的对象)。从这里可以看到,watcher实际上是一个函数,这个函数的作用就是根据data的变化做出改变,也可以看做是一种运算机制。这种运算机制会被记录到一个叫getter的属性,每次watcher运算得到的结果将会被存储在value 属性当中,实际上,这里还有一个叫cb的属性,记录回调函数,当watcher返回的值与当前的value值不同时候会被调用。

相关文章

  • Vue的响应式浅析

    1 Vue如何实现响应式? Vue的响应式是建立在监听data中的数据. 2 在Vue2中响应式的实现 Vue通过...

  • Vue源码03-响应式原理

    这节将专门讲解vue MVVM响应式处理 Vue采用的是 实现数据的响应式 数据劫持 Observer类 Obse...

  • vue双向数据绑定的实现原理

    实现数据响应式 在Javascript里实现数据响应式一般有俩种方案,分别对应着vue2.x和 vue3.x使用的...

  • 双向绑定

    数据响应式原理 vue实现数据响应式的原理就是利用了Object.defineProperty(),重新定义了对象...

  • 前端面试题【Day02】

    本篇绪论 1,Vue响应式原理 1,Vue响应式原理 在vue实例中声明的数据就是响应式的。响应式:数据发生改变,...

  • vue实现数据响应式的过程

    1.怎样更形象的解释vue.js的响应式系统? 在前端框架中,vue.js的灵魂所在就是其“数据响应式”,简单的描...

  • Vue实例构造-1

    data Vue 实例的数据对象,Vue会将这些数据对象的属性转换为getter/setter,从而实现数据响应式...

  • 2021-03-03

    vue vue 是如何实现响应式数据的呢?Vue2:Object.definProperty 重新定义 data ...

  • Vue的34道题

    1、如何理解MVVM原理? MVVM的实现原理 2、响应式数据的原理是什么? 响应式数据与数据依赖基本原理vue双...

  • 【vue3源码】一、认识副作用函数与响应式数据

    认识副作用函数与响应式数据 在分析vue3响应式的实现前,我们需要先搞清两个概念:副作用函数、响应式数据。 副作用...

网友评论

      本文标题:vue实现数据响应式的过程

      本文链接:https://www.haomeiwen.com/subject/yxjzaftx.html