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

    文章

    4696

    浏览量

    89575
  • 变量
    +关注

    关注

    0

    文章

    615

    浏览量

    29371
  • vue
    vue
    +关注

    关注

    0

    文章

    59

    浏览量

    8510
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用SpringBoot、Vue2.0、MySQL开发一套云诊所系统?

    ​ 如何使用Java语言;前端框架:Vue2.0;后端框架:SpringBoot;数 据 库: MySQL 这些技术开发一套云诊所系统? 技术栈分析: 后端:SpringBoot
    的头像 发表于 11-27 16:02 134次阅读
    如何使用SpringBoot、<b class='flag-5'>Vue</b>2.0、MySQL开发一套云诊所系统?

    FZH501A 适用于 LED 显示屏系统中控制卡与显示模组间的数据交互的 双向总线收发器

    一、 概述型号:FZH501A 厂商:深圳市方中禾科技有限公司(Premier Chip Limited)这种八线收发器设计用于异步双向数据总线通信,这种控制功能的实现最大限度地减少了外部时间的要求
    发表于 11-10 09:59

    医院随访管理系统源码,三级随访系统源码,Java+Springboot,Vue,Ant-Design+MySQL5

    Java版随访系统源码,医院随访管理系统源码,三级随访系统源码,B/S前后端分离架构,自主版权,落地案例。 技术框架:Java+Springboot,Vue,Ant-Design+MySQL5 开发
    的头像 发表于 11-08 14:48 202次阅读
    医院随访管理系统源码,三级随访系统源码,Java+Springboot,<b class='flag-5'>Vue</b>,Ant-Design+MySQL5

    Vue3组合式API最佳实践:从Options API到Composition API

    简介 在Vue.js中,Options API一直是主流的开发方式。不过随着Vue3的推出,Composition API作为一种全新的开发方式引起了广泛关注。本文将从Options API到
    的头像 发表于 10-20 13:36 174次阅读

    物联网网关实现与上位机双向数据通信的配置指南

    管控平台的关键环节。 本案例聚焦于某大型制造企业的 数据库集中监控项目 ,旨在通过部署工业智能网关,实现 两台上位机之间的数据双向收发与同步 ,并构建统一的远程
    的头像 发表于 09-22 11:06 334次阅读
    物联网网关<b class='flag-5'>实现</b>与上位机<b class='flag-5'>双向</b><b class='flag-5'>数据</b>通信的配置指南

    时序约束管脚绑定不成功问题

    {[新手提问]: 关于引脚绑定问题}在绑定vivado引脚中时,选项中没有原理图可绑定的引脚,需要绑定的引脚在l/O Bank88,但是我需要绑定
    发表于 08-21 17:18

    如何实现高效双向电能变换

    随着电动汽车、家庭和工商业储能产品快速普及,双向电能变换系统的热度也在不断攀升。作为电网与电池的功率桥梁,双向电能变换系统基于一套硬件电路就能控制电池充放电,实现能量双向流动,相比传统
    的头像 发表于 07-23 11:40 1273次阅读

    如何确定PSoC™ Creator 中绑定数据的行/位置?

    十六进制转储的比较可以看出,粘合数据似乎存储在第 389 行和第 391 行。 有几个问题。 那么,是否有适当的行来保护引导加载程序 0-388? 如何确定PSoC™ Creator 中绑定数据的行/位置? 我可以设置粘合数据
    发表于 07-22 07:58

    请问OpenVINO™ 是否支持 Rust 绑定

    无法确定OpenVINO™是否支持 Rust 绑定
    发表于 06-25 07:45

    使用labview I/O服务器绑定变量写入出现异常数据

    我在使用labview 2023Q创建I/O服务器,并创建了绑定变量,需要把仪器读取的数据写入变量地址,但是写入过程会出现错误数据,就比如下面变量F300003,在显示控件以及写入变量前连线上插入
    发表于 05-12 21:49

    什么是光伏双向电表?双向电表有哪些应用?

    电能的双向流动轨迹。在用户侧并网运行模式下,不仅计量用户从公共电网获取的用电量(正向有功电能),同时精准统计光伏系统向电网回馈的发电量(逆向有功电能),实现能源流量的全维度监控。 技术支持 安科瑞 程瑜 187 0211 2087 双向
    的头像 发表于 05-12 09:42 1634次阅读
    什么是光伏<b class='flag-5'>双向</b>电表?<b class='flag-5'>双向</b>电表有哪些应用?

    harmony OS NEXT-双向数据绑定MVVM以及$$语法糖介绍

    # 鸿蒙Harmony-双向数据绑定MVVM以及$$语法糖介绍 ## 1.1 双向数据绑定概念
    的头像 发表于 04-29 16:52 1117次阅读

    SN74CBTD3306能用于2.5V-3.3V双向电平转换吗?

    接3.3V或者2.5V的接口,问一下这种芯片能不能实现3.3V-2.5V双向电平转换的功能?如果有,是哪一款芯片呢? 另外,在双向电平转换芯片中有一个数据是max data rates
    发表于 02-05 08:14

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

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

    储能系统的核心——双向逆变器

    电子发烧友网报道(文/黄山明)所谓双向逆变器,就是一种能够实现直流电(DC)与交流电(AC)之间双向转换的电力电子设备。它的主要作用是在储能系统中实现电能的存储和释放。   当电网或可
    的头像 发表于 12-17 00:08 6335次阅读
    储能系统的核心——<b class='flag-5'>双向</b>逆变器