微信程序是如何实现双向数据绑定的?

  • A+
所属分类:asp文件
摘要

在本土小程序的开发中,数据流是单向的,不能双向绑定,但实现双向绑定的功能还是相当简单的!以下是小程序框架minapp中双向绑定的原理。在minapp中,您只需要添加.sync<b>[在wxml模板中添加.sync<b>(基于快

在本土小程序的开发中,数据流是单向的,不能双向绑定,但实现双向绑定的功能还是相当简单的!

以下是小程序框架minapp中双向绑定的原理。在minapp中,您只需要添加.sync<;b>;[在wxml模板中添加.sync<;b>;(基于快脚电影网络的最新和最流行和最好看的电影和电视]<;/b>;)<;/b>;<;/b>;可以实现双向绑定。下面来解释一下它的原理,这个过程可能会更复杂一些,但是实际上minapp框架已经处理了这些复杂的细节!

首先,要在两个方向绑定数据,您应该避免过多的数据源。

对于自上而下的自然数据流,如果每个组件维护自己的数据并保持其数据值的一致性,则可以这样做,但实现过程并不简单。

但是没有必要说为了有一个统一的数据源,mobx或redux被用于在全球范围内管理数据,这是一种杀鸡的小刀。

由于双向绑定只存在于父组件和子组件之间,并且数据从父组件传递到子组件,因此可以将父组件中的数据作为数据源给予优先级。

每次子组件更新数据时,它都不会更新自己的内部数据,而是触发父组件通过事件机制更新其数据,父组件更新数据并自然地将更新的数据传递给子组件。

从而实现双向数据流!

并不是所有的数据都需要双向绑定,也不是所有的数据都是外部的,子组件也可以有自己的内部数据。因此,这涉及到我们将要讨论的第二个问题:区分哪些数据需要在两个方向上绑定,哪些数据需要由子组件自己维护。

任何使用VUE的人都应该知道,为了在VUE中实现双向绑定,需要在模板中进行特殊处理。例如,要将父组件的双向组件绑定到子组件,需要将其写入父组件的模板中:

但是小程序没有这么简单的语法,甚至不允许符的wxml语言属性名出现在“.”这样的字符中。回到我们的问题上,子组件需要知道哪些属性需要在两个方向上绑定,哪些属性需要单独维护。

只需向模板中添加一个字段(),就可以告诉子组件需要向两个方向绑定的数据集合。例如,您可以将上面的示例编写为微信迷你程序支持的一种方式:

接下来,您需要处理子组件数据更新,其中有两个数据部分,一个是内部数据,另一个是父组件中的数据。

子组件可以读取属性得到哪个<;b>;[小白源代码资源站19.9元可以下载整个网络源代码http://www.526bt.com]<;/b>;一些数据是内部数据,这些数据是父组件的数据,并且可以知道相应的数据。

的父组件中的数据的关键名称是什么,因为本机组件方法不关心您是内部数据还是父组件中的数据,只要

您调用它来更新数据,它只更新内部数据。所以你需要实现一种新的方法来自动判断数据源,如果它是内部数据,

直接调用;如果它是双向绑定中的父组件数据,则可以触发一个事件通知父组件更新相应的值。

因此,根据上述描述,父组件需要具有侦听功能,子组件需要具有智能功能。而不阻止父组件的侦听功能。

命名,并且命名了子组件的智能函数,您可以使用以下代码:

此时,一个简单的双向绑定功能已经完成.但是,因为子组件也可能包含其他组件,也就是说,子组件也可以是父组件,父组件也可以。

它可以是一个子组件。因此,上面的函数需要在每个组件中实现,所以您不必

定义一个公共对象来实现上述所有功能,例如:

然后,您可以将BaseComponentMinin放在每个组件的对象上;此外,小程序中还有一个特殊的组件:page,尽管Page和Component结构是两个。

但是它也应该是一个组件,但是它必须是一个父组件,而不是另一个组件的子组件,所以您还需要将该方法写入所有的Page定义中。

所有这些都是minapp双向绑定的基本原理。

等等,等等。当然,当minapp编译时,它会对模板进行简单的转换:

谢谢。这是本文的结尾。欢迎来到Minapp:微信计划的重新定义。

我相信你已经掌握了这个案例后的方法,更精彩的是请留意php中文网站的其他相关文章!

建议阅读:

事件模型的详细解释

如何使用事件循环

以上是微信程序如何实现数据双向绑定的细节.请多留意PHP中文网络的其他相关文章!

Front / in? Be careful in the front / in the bow / in front

分享当前页面将至少获得10%佣金,点此获取推广链接(规则说明)。

本站VIP源码资源永久免费下载!持续更新!www.526bt.com

加入999永久VIP会员带做项目包赚钱!教引流包搭建,社群资源共享!

新项目更新通知QQ群:767688774 站长技术交流QQ群:552760713

点击这里给我发消息

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
admin
彩世纪电脑+手机全套-建站 编号: 1053
做网站 PHP源码修改二次开发程序页面美化/功能定制/仿站/仿模板
月入30万的在家创业开淘宝的教程!收徒!一对一指导!包赚钱!
域名快速备案个人网站企业公司网站域名快速代理备案快速服务|网站快备

发表评论

您必须才能发表评论!