面试题vue双向绑定原理_vue路由面试题

面试题vue双向绑定原理_vue路由面试题引言:vue的双向绑定原理简单来说就是:vue内部使用object.defineProperty方法给所有数据加上getter和setter方法,在数据发生改变时发布消息给订阅者Watcher,触发响应的监听回调。object.defineProperty是JS里一个重要的方法,vue的双向绑定ES6里一些方法都是靠它实现的。如图所示zuoerobject.defineProperty…

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

Jetbrains全系列IDE稳定放心使用

引言:vue的双向绑定原理简单来说就是:vue内部使用object.defineProperty方法给所有数据加上getter和setter方法,在数据发生改变时发布消息给订阅者Watcher,触发响应的监听回调。
object .defineProperty是JS里一个重要的方法,vue的双向绑定ES6里一些方法都是靠它实现的。

在这里插入图片描述

如图所示zuoerobject .defineProperty 方法给对象的属性动态加上setter和getter方法,外部获取和设置对象属性值时都会触发对应的getter,setter方法。
object .defineProperty 方法需要一个中间变量来作为返回值,否则的话set方法中直接给对象的属性设置值会无限的触发set方法陷入死循环。
vue就是在data对象中使用 object .defineProperty 方法,遍历属性给每一个属性设置setter和getter方法。每个组件实例都会对应一个Watcher实例,当setter方法触发时都会通知Watcher,从而重新渲染关联组件。这就是vue双向绑定的原理。注意object .defineProperty是ES5独有特性,这也是vue不支持IE8以及更低版本的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年10月17日 下午10:46
下一篇 2022年10月17日 下午10:46


相关推荐

  • Superpowers:一套为编码智能体打造的技能框架与软件开发工作流

    Superpowers:一套为编码智能体打造的技能框架与软件开发工作流

    2026年3月19日
    2
  • 计算机dll修复工具,DLL修复工具哪个好?五款修复能力强推荐

    计算机dll修复工具,DLL修复工具哪个好?五款修复能力强推荐为什么会用到dll修复工具呢?因为我们在打开某些程序或者软件的时候会提示找不到某某.dll文件,关键是这些dll文件还不一样,我们去网上下载这些dll文件结果显示跟系统的版本不一致,反正就是各种麻烦,自己去找又费时又费力,而且往往对于有些游戏来说,修补了某一个dll又提示缺少另一个dll文件,这些其实可能都是系统本身太精简或者没有安装一些依赖软件导致的,这时候你完全不需要手动去找这些dll文件,只…

    2022年5月30日
    70
  • vscode将md文件转pdf

    vscode将md文件转pdfvscode 将 md 文件转 pdf 工具方法效果工具 vscode 插件 MarkdownPrev 方法找到谷歌的安装路径 我的安装路径为 C ProgramFiles x86 Google ChromeDev Application chrome exe 打开 vscode 设置 File gt preferences gt Sett

    2026年3月17日
    1
  • Intellij IDEA 添加jar包的三种方式

    Intellij IDEA 添加jar包的三种方式一 直接复制 不推荐 方法 直接将硬盘上的 jar 包复制粘贴到项目的 lib 目录下即可 注意 1 对于导入的 eclipse 项目 该方式添加的 jar 包没有任何反应 用 make 编译项目会报错 2 对于在 idea 中创建的项目 该方式添加 jar 包 编译不报错 但是打开 Structure 会有 jar ismissing 的提示 需要点击 Fix 或红灯泡解决 二 通过 Modul

    2026年3月26日
    3
  • 什么是java常量「建议收藏」

    什么是java常量「建议收藏」  相信很多在学java技术的同学,对java常量这个并不陌生,什么是java常量呢?java常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。  下面我们就一起来看看java中的这些常量:  1.整型常量  整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具体表示形式如下。  二进制:由数字0和1组成的数字序列。在JDK7.0中允许使用字面值来表示二进制数,前面

    2022年7月8日
    33
  • Maven安装教程_vmware安装教程

    Maven安装教程_vmware安装教程一、安装apache官网下载需要的版本,然后解压缩,解压路径尽量不要有空格和中文Maven–DownloadApacheMavenhttps://maven.apache.org/download.cgi二、配置环境变量新建系统变量变量名:MAVEN_HOME值:你解压的路径eg:D:\xxx\apache-maven-3.8.4编辑系统变量Path打开->新建->路径为:解压缩文件的路径到bin目录eg:D:\xxx\apac

    2022年8月22日
    9

发表回复

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

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