0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vue双向数据绑定的实现

汽车玩家 来源:今日头条 作者:新钛云服 2020-05-05 21:28 次阅读

现在圈子中许多JS框架都有自己的数据相应引擎。通过了解其工作原理,我们可以在实际开发中更有效地使用它。在下面的文章中,我们构建了您在Vue源代码中看到的相同类型的Reactivity。

TheReactivity System

当你第一次看到它时,Vue的响应系统看起来很神奇。看如下代码片段:

Vue双向数据绑定的实现

Vue双向数据绑定的实现

不知何故,Vue只知道如果价格发生变化,它应该做三件事:

更新我们网页上的价格值。

重新计算乘以price * quantity的表达式,并更新页面。

再次调用totalPriceWithTax函数并更新页面。

但是等等,你应该会觉得奇怪,当价格变化时,Vue如何知道要更新什么,以及如何跟踪所有内容?

Vue双向数据绑定的实现

这并不是JS编程中常规的工作方式。

如果你不明白,那我们试着看看常规的js是怎么运行的。例如,如果我运行此代码:

Vue双向数据绑定的实现

你觉得它打印什么?由于我们没有使用Vue,它将打印10。

Vue双向数据绑定的实现

在Vue,我们希望每当价格或数量更新时,总计都会得到更新。我们想要:

Vue双向数据绑定的实现

不幸的是,js是程序性的,而不是被动的,所以这在现实生活中不起作用。为了使数据变化得到相应,我们必须使用js来使事情表现不同

问 题

我们需要保存计算总数的方式,以便在价格或数量变化时重新运行。

解决方案

首先,我们需要一些方法告诉我们的应用程序,“我即将运行的代码,存储它,我可能需要你在另一个时间运行它。”然后我们将要运行代码,如果价格或数量变量得到更新,再次运行存储的代码。

Vue双向数据绑定的实现

请注意,我们在目标变量中存储了一个匿名函数,然后调用了一个记录函数。使用ES6箭头语法我也可以这样写:

Vue双向数据绑定的实现

请注意,我们在目标变量中存储了一个匿名函数,然后调用了一个记录函数。使用ES6箭头语法我也可以这样写:

Vue双向数据绑定的实现

记录的方法:

Vue双向数据绑定的实现

我们正在存储目标(在我们的例子中是{total = price * quantity}),所以我们可以稍后运行它。

Vue双向数据绑定的实现

这将遍历存储阵列中存储的所有匿名函数并执行它们中的每一个。

然后在我们的代码中,我们可以:

Vue双向数据绑定的实现

很简单吧?如果您需要阅读并尝试再次掌握它,这里的代码就完整了。仅供参考,如果您想知道原因,我会以特定的方式对此进行编码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4318

    浏览量

    85883
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28389
  • vue
    vue
    +关注

    关注

    0

    文章

    58

    浏览量

    7848
收藏 人收藏

    评论

    相关推荐

    Vue3设计思想及响应式源码剖析

    作者:京东物流 乔盼盼 一、Vue3结构分析 1、Vue2与Vue3的对比 •对TypeScript支持不友好(所有属性都放在了this对象上,难以推倒组件的数据类型) •大量的API
    的头像 发表于 12-20 10:24 109次阅读

    fpga 管脚不让绑定的问题,绑定时提示: Not assignable

    fpga 管脚不让绑定的--提示 如下图: 网上说将复用管脚设置成 普通I/O,我这也没找到我要绑定的管脚,怎么设置。该管脚是和NOR_Flash相关的,无法绑定,我想实现掉电存储一些
    发表于 12-05 15:30

    怎么绑定IP地址和MAC地址

    本篇文章主要说一说怎么在本地计算机上绑定IP和MAC地址以及通过路由器绑定IP和MAC地址,并且这两者绑定可以解决什么问题。   先来说说怎么去绑定 本地计算上
    的头像 发表于 12-01 22:48 261次阅读

    请问CC85xx无线音频是否可以实现同时双向传输?

    使用CC85xx实现无线音频传输,看了CC85xx的文档,对两个结点之间同时双向传输音频的描述不是很明确。现在想实现两个结点之间音频的双向传输,如下图,PM既要传输音频至PS扬声器,
    发表于 10-12 06:46

    机智云智家APP的设备扫描与绑定限制

    版应用,旨在实现对智能设备的管理和控制。通过智家APP,用户可以方便地与支持的设备进行互动,享受智能家居带来的便利。然而,绑定设备的能力并非对所有用户开放。Q绑定设备的条件
    的头像 发表于 09-22 08:02 248次阅读
    机智云智家APP的设备扫描与<b class='flag-5'>绑定</b>限制

    智能电表双向计量是什么意思?

    智能电表双向计量是指智能电表能够同时记录电力的输入和输出数据,即不仅能够计量用户消耗的电力,还能计量用户向电网输送的电力。本文将详细探讨智能电表双向计量的功能、技术实现及其应用场景。一
    的头像 发表于 09-13 17:28 673次阅读
    智能电表<b class='flag-5'>双向</b>计量是什么意思?

    AN87216双向数据传输数据丢失是什么原因引起的?

    测试 AN87216 ,双向数据传输数据丢失 ,数据或问题,请问这个是可能什么引起,谢谢!
    发表于 07-24 06:50

    bootstrap框架和vue框架的区别

    响应式移动优先的网页。Bootstrap的核心设计理念是“移动优先”,即优先考虑移动设备的显示效果,然后通过媒体查询等技术实现对不同设备的适配。Bootstrap提供了一套丰富的CSS和JavaScript组件,可以快速实现各种常见的网页布局和交互效果。
    的头像 发表于 07-11 09:55 888次阅读

    如何手动往esp32 arp列表中添加自定义的arp绑定信息?

    我目前需要手动往esp32 arp列表中添加自定义的arp绑定信息,而非arp请求获得,因为另一方设备无法完成arp应答 如IP为:192.168.88.2 MAC为:00:0A:35:01:FE:C0 arp绑定后我需要实现
    发表于 06-07 08:14

    鸿蒙开发接口Ability框架:【@ohos.application.formBindingData (卡片数据绑定类)】

    卡片数据绑定模块提供卡片数据绑定的能力。包括FormBindingData对象的创建、相关信息的描述。
    的头像 发表于 05-06 17:25 500次阅读
    鸿蒙开发接口Ability框架:【@ohos.application.formBindingData (卡片<b class='flag-5'>数据</b><b class='flag-5'>绑定</b>类)】

    udp_bind这个绑定的端口怎么解除?

    请教下,udp_bind 这个绑定的端口,刚开始是可以的,但是重新绑定时返回错误,有什么方法可以在 重新绑定前解除之前的绑定
    发表于 04-22 07:41

    电流监控如何实现高效双向电流检测

    为避免上述情况发生,设计人员可以采用集成、高速、精确的双向 CSA。设计人员可以选择带有内部低电感分流电阻的集成双向 CSA 构成最紧凑的解决方案,或者选择使用外部分流器的 CSA 实现更灵活的设计和布局。
    发表于 04-11 09:14 414次阅读
    电流监控如何<b class='flag-5'>实现</b>高效<b class='flag-5'>双向</b>电流检测

    关于stm32u575芯片作为usb device和PC实现双向通信的疑问

    平台:STM32U575qii-EV板 模块:USBX,ThreadX 目的:stm32u575芯片作为usb device和PC实现双向通信,device为HID Custom类 现状:当前
    发表于 03-13 06:56

    请问tc233 Uart收发数据如何绑定到DMA?

    请问tc233 Uart收发数据如何绑定到DMA?绑定到DMA之后中断触发还是原来的 IfxCpu_Irq_installInterruptHandler()这个函数里绑定的中断服务函
    发表于 01-22 06:27

    服务器宝塔面板怎么绑定多个ip?

    服务器宝塔面板怎么绑定多个ip?在宝塔面板中绑定多个IP地址可以通过以下步骤完成: 1、登录宝塔面板 使用你的浏览器访问宝塔面板的网址,并使用管理员账号和密码登录。 2、进入站点管理 在宝塔面板左侧
    的头像 发表于 01-12 17:29 1723次阅读