vue的双向绑定原理_vue中数据双向绑定的原理

vue的双向绑定原理_vue中数据双向绑定的原理简析mvvm框架 目前angular,reat和vue都是mvvm类型的框架以vue为例 这里的vm 就是vue框架,它相当于中间枢纽的作用,连接着model 和view.当前台显示的view发生变化了,它会实时反应到viewModel上,如果有需要,viewModel 会通过ajax等方法将改变的数据传递给后台model 同时从后台model获取过来的数据,通过vm将…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  1. 简析mvvm框架

目前angular,reat和vue都是mvvm类型的框架

以vue为例

vue的双向绑定原理_vue中数据双向绑定的原理

 

这里的vm 就是vue框架,它相当于中间枢纽的作用,连接着model 和view.

  • 当前台显示的view发生变化了,它会实时反应到viewModel上,如果有需要,viewModel 会通过ajax等方法将改变的数据 传递给后台model
  • 同时从后台model获取过来的数据,通过vm将值响应到前台UI上

 

  • 双向绑定原理

vue的双向绑定原理_vue中数据双向绑定的原理

vm的核心是view 和 data 

  • 当data 有变化的时候它通过Object.defineProperty()方法中的set方法进行监控,并调用在此之前已经定义好data 和view的关系了的回调函数,来通知view进行数据的改变
  • 而view 发生改变则是通过底层的input 事件来进行data的响应更改

vue是通Object.defineProperty()实现数据劫持的

Object.defineProperty( )是用来做什么的?它可以来控制一个对象属性的一些特有操作,比如读写权、是否可以枚举,这里我们主要先来研究下它对应的两个描述属性get和set

varBook= {}

       varname= '';

       Object.defineProperty(Book, 'name', {

           set:function(value) {

                name= value;

                console.log('你取了一个书名叫做'+ value);

           },

           get:function() {

                return'《'+ name+ '》'

           }

       })



       console.log(Book)

       Book.name= 'vue权威指南'; // 你取了一个书名叫做vue权威指南

        console.log(Book.name); // 《vue权威指南》

       // get 是在读取那么属性的时候触发的

       // set 是在设置属性值的时候触发的

 

实现方法: 观察者模式

vue的双向绑定原理_vue中数据双向绑定的原理

Observer(Objec.defineProperty中的set)监听data的变化,当data有变化的时候通知观察者列表Dep(里面有与data变化对应的update函数),watcher负责向观察者列表里添加(订阅)对应的更新函数,Dep里的更新函数执行完了之后将最新的值更新到view上。

具体的代码实现可参考:https://www.cnblogs.com/libin-1/p/6893712.html

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180677.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关系数据理论-数据库习题

    关系数据理论-数据库习题设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是()。A.W1(工号,姓名),W2(工种,定额)B.W1(工号,工种,定额),W2(工号,姓名)C.W1(工号,姓名,工种),w2(工种,定额)D.以上都不对正确答案:C3NF要求没有部分依赖和传递依赖,“定额”直接依赖“工种”,传递依赖“工号”。规范化的实质是概念的单一化,“一事一地”,一个关系只描述一个概念。规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满

    2022年10月16日
    0
  • android开发之应用打包签名混淆流程

    ant打包apk,对其签名和混淆,防止反编译。

    2022年3月11日
    20
  • 虚拟机无法在windows10上运行_虚拟机中安装windows10详细教程

    虚拟机无法在windows10上运行_虚拟机中安装windows10详细教程虚拟机中安装Windodxp系统,可能会存在一些问题,现在把安装中碰到的问题和解决方法总结如下: 问题1:outputerrorfiletothefollowinglocation:问题2:Exiting Intel PXE ROM.OperatingSystemnotfound问题1和问题2解决方法:需要对虚拟机进行分区,分配一个主分区,

    2022年8月16日
    4
  • 全方位剖析QT 面试题 胡峰原创

    全方位剖析QT 面试题 胡峰原创自己毕业后参加过很多面试,当然有以应聘者的身份参加的也有以面试官的身份参加的,下面我想总结下一些面试官出题的方向和回答的技巧,下面截取我对一个应届毕业生的面试过程作为讲解,希望能对再今后的面试任职时有所帮助。姓名AAA性别男民族汉族籍贯河北省AA出生日期AAA婚姻状况否学历学士政治面貌AA专业计算机科学与技术健康情况健康毕业院校AAA邮编A联系电话AAA邮箱AA个人技能我学习了嵌入式方向所涉及的51单片机、操作系统、ARM、Qt等,期间做过许多小实验,单片机最经典的

    2022年6月25日
    112
  • Java基础语法(六)循环控制语句不得不说的那些事儿

    Java基础语法(六)循环控制语句不得不说的那些事儿

    2021年4月22日
    154
  • 京东签到在哪儿_python爬虫教程

    京东签到在哪儿_python爬虫教程京东签到在哪里?有哪些步骤呢?最近很多朋友都在咨询小编京东签到在哪里,其实这个问题很简单,但是为了能够使更多的亲们了解京东签到在哪里,小编专门整理了这篇文章,希望阅读过后的亲们可以明确京东签到这个问题的答案。京东签到是为了给京东会员提供购物赠京豆、生日礼包、自营免运费、专享礼包等权益。提高京东商城会员之间的互动,增加用户粘性。一、京东签到在哪里,可以签到的入口1、京东金融APP打开后,右上角那个日…

    2022年9月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号