主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
在开发天然微观图的开发中,数据流是单向的,不能在双向上绑定,但是实现双向连接的功能非常容易!
以下是在Mini编程框架MINAPP中实现双向绑定的原则。 MINAPP要求您将.Sync添加到WXML模板中组件的属性名称中,以实现双向绑定。 说明这一原则可能会更加复杂,但实际上,MINAPP框架已经处理了这些复杂的细节!
首先,您应该避免拥有太多数据源以使数据双向加入。 如果数据从上到下自然流动,并且每个组件在保持数据值一致的同时维护自己的数据,则可以执行此操作,但是实现过程并不容易。 但是,无需说您在全球管理Gobx或Redux,以杀死鸡肉的统一数据源。 由于双向连接仅存在父母和子女组件之间,并且数据从父母到子女都传递,因此建议将来自父组件的数据用作数据源。每当儿童组件更新数据时,它都不会更新自己的内部数据,但是它通过事件机制触发父组件以更新数据。父组件更新数据后,它自然地将更新的数据传递给了子组件,从而实现了数据的双向流程!
并非所有数据都必须是双向加入,而不是全部。子组件也可以拥有自己的内部数据。 因此,这包括我们要谈论的第二个问题。它区分了哪些数据必须在两个方向上组合,哪些数据必须由子组件本身维护。
任何使用过Vue的人都应该知道,模板中需要特殊处理才能在VUE中获得双向绑定。 例如,要在两个方向上将子组件的parentAttr与儿童组件的childattr结合在一起,则必须在父部件模板中像这样写。 返回我们的问题,子组件应知道哪些属性对于双向连接,我需要哪些属性才能保持自己?将字段(Syncattrmap)添加到模板中,尤其是需要双向连接的儿童组件是否还不够? 例如,上面的示例可以用微信小程序写作作为支持的写作方法。孩子组件和p3,加入C3 - -孩子C1 = {{p1}} c2 = {{{p2}} c3 = {{p3}} syncattrmap = c1 = c1 = p1 c2 = p1 c2 = p2 = p2 /
c3 = c3 = c3 = {儿童组件具有两个数据的两个部分,一个内部数据以及父组件的另一个数据。子组件可以读取属性Syncattrmap以获取哪些数据是内部数据,哪些数据是父组件的数据,并知道相应的父组件的数据的关键名称是什么。 天然组件方法setData不在乎它是内部还是父组件数据,只要被调用以更新数据,因此只能更新内部数据。 因此,需要一种新方法来自动确定数据源。对于内部数据,setData被直接调用。如果是双向绑定的父组件数据,则可以触发事件以通知父组件并更新相应的值。
根据上述内容,父组件需要听力功能,并且子组件需要智能的setData函数。 如果您不想将父组件的侦听功能命名为onsyncattruupdate和子零件的智能设置数据功能为setDataSmArt,则可以具有以下代码:
// parent component({method:{onsyncattruupdate(onsyncattruupdate(e))//需要从子component}})syncattrmap:string},方法:{//如果子组件更新数据,它只是调用此方法而不是`setData` setDataSmArt(data)(//我不谈论SplitDataBysynCattrmap function.DATITATE.DATIO.SSESSE.DACATATATA.DACTATA.DACTATA.DACTATA.DACTATA.DACTATA.DACATATATA.DACATATATA.DACATA, setData(object.keys(innerdata).length){this.setData(innindata)// setData在此处不讨论以简化代码。 (object.keys(parentData).length){this.triggerevent('syncattruupdate',parentdata)}}})
此时,简单的双向加入函数已完成。 但是,由于儿童组件也可能包含其他组件,因此子组件可能是父组件,而父组件也可以是子组件。 因此,必须在每个组件中实现上述onsyncattruupdate setDataSmArt函数,因此无需定义它,
// basecomponentsconst basecomponent = {properties:{syncattrmap:string},方法:{setDataSmArt(){// ... onsyncattrupdate(){// ...} {// ...}},然后
{syncattrmap:string},方法:{syncattrmap:string}等。此外,applets具有特殊的组件:页面。页面和组件的结构是不同的,但必须被视为一个组件,但是它必须是父组件,而不是其他组件的子组件,因此您还需要为Onsyncattruupdate方法编写所有页面定义。 这些都是在MINAPP中双向加入的基本原则。
还有一个。 WXML模板不允许用户每次编写双向绑定时编写此类复杂的语句。 当然不是。 汇编MinApp后,对模板进行了简单的转换:
childChildattr.sync = parentattr /
谢谢。文章在这里结束。 关注MinApp:重新定义微信系的开发
我认为您在阅读此情况后已经掌握了此方法。有关更多令人兴奋的事情,请注意主机参考其他相关文章!
推荐阅读:
事件模型的详细说明
如何使用事件循环
这几篇文章你可能也喜欢:
- win7如何清除所有计算机数据(windows7如何清除计算机数据)
- 如何实现微信小程序的双向数据绑定(微信小程序和vue的双向数据绑定区别在哪里)
- 如何用ppt制作数据图;利用PPT数据制作曲线散点图的方法(利用PPT表格生成图形)
- 7 Win如何清除所有电脑数据(win7清除所有电脑数据)
- 微信小程序如何实现双向数据绑定(微信小程序的双向数据绑定)
本文由主机参考刊发,转载请注明:如何在微信中实现双向数据绑定(在微信中的双向数据绑定) https://zhujicankao.com/148012.html
评论前必须登录!
注册