美文网首页
1.0 Vue2.0原理概述

1.0 Vue2.0原理概述

作者: 闲人追风落水 | 来源:发表于2022-05-05 11:20 被阅读0次
1.变化监测: 主要是为了观察数据 明白哪些数据发生了改变

Vue采取的是"推"的方式,
数据状态改变 ------------- Vue核心获得信息 ------------ 向和数据绑定的依赖发送通知 --------------- 依赖进行DOM更新操作
每一个状态都绑定着许多依赖,每一个依赖都表示一个具体的DOM节点

Angular和React是"拉"的方式, 状态发生变化时,发送信号告诉框架核心,但是框架核心不知道具体是哪个变化了,只能通过暴力的比对来确定哪些DOM节点需要重新渲染。 Angular中使用脏检查流程,React中使用虚拟DOM。

// 测试 数据的变化监测
            let data = []
            function defineReactive(data, key, val) {
                Object.defineProperty(data, key, {
                    enumerable: true,
                    configurable: true,
                    get: function() {
                        console.log('获取数据')
                        return val
                    },
                    set: function(newVal) {
                        console.log("修改数据")
                        if (val === newVal) {
                            return
                        }
                        val = newVal
                    }
                })
            }
            defineReactive(data, '0', 'www')
            defineReactive(data, '1', 'ccc')
            console.log(data[0]) // 获取数据 www
            console.log(data[1]) // 获取数据 ccc
            data[0] = 5; //修改数据
            data[2] = 10; // 没有触发修改
            console.log(data[2]) // 10
2.收集依赖: 把用到数据的地方收集起来

监测数据实现了对数据状态改变的监测,同时我们需要知道,数据发生变化时,哪些地方使用了此数据
具体的思路是---先收集依赖,在使用数据时把使用数据的地方记录,等数据发生变化时,把收集好的依赖循环依次触发修改。
收集依赖的地方在getter

因此 总结v2的基本原理就是: 在getter中收集依赖(使用的时候触发get在此函数中收集),在setter中触发修改依赖(在set函数中触发)

相关文章

  • 1.0 Vue2.0原理概述

    1.变化监测: 主要是为了观察数据 明白哪些数据发生了改变 Vue采取的是"推"的方式,数据状态改变 ----...

  • 大数据 Haddoop(二) 架构与原理

    Haddoop架构与原理 Hadoop架构 架构概述 Hadoop V1.0核心: HDFS MapReduce ...

  • VUE初级入门实践

    VUE概述 生命周期 指令 内置指令 自定义指令 过滤器 内置过滤器 VUE1.0版本 VUE2.0版本(无内置过...

  • vue综合讲解

    vue2.0和1.0模板渲染的区别 Vue 2.0 中模板渲染与 Vue 1.0 完全不同,1.0 中采用的 Do...

  • vue1.0与vue2.0路由的区别

    个人总结——vue1.0与vue2.0路由的区别 vue1.0 html部分———— 主页 跳转链接 ...

  • 1.0 概述

    “教育心理学”是: 1、一门研究学校情境中学与教的基本心理规律的科学 2、其主要研究对象是教育系统中学生的学习及其...

  • vue2.0的动画和1.0的动画

    相对于vue1.0来说,vue2.0的动画变化还是挺大的,在1.0中,直接在元素中加 transition ,后面...

  • Vue2.0中的路由配置

    Vue2.0较Vue1.0,路由有了较大改变。看一下Vue2.0中的路由如何配置: 步骤一: 在main.js文件...

  • vue2.0与vue1.0中的区别1

    vue2.0与vue1.0中的区别1:每个组件模板中不在支持片段代码 在vue1.0 中的模板template中可...

  • vue3.x 与 vue2.x 在写法上的区别

    1. 数据双向绑定的原理 1.1 原理 Vue2.0使用Object.defineProperty来劫持对象属性的...

网友评论

      本文标题:1.0 Vue2.0原理概述

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