一对一免费咨询: 189-6833-3365

作者:Uheinanba,来自原文组件页面通信使用globalData或者storage的弊端(造成的隐蔽的bug)。宁波小程序开发对于用户来说,能够节约使用时间成本和手机内存空间;对于开发者来说也能节约开发和推广成本。使用eventBus的问题。(使用复杂)尝试解决方案event + emitinvoke(推荐)混合(mixin)混合可以将组之间的可复用部分抽离 。。
作者:Uheinanba,来自原文
组件页面通信使用globalData或者storage的弊端(造成的隐蔽的bug)。使用eventBus的问题。(使用复杂)
尝试解决方案
event + emitinvoke(推荐)混合(mixin)
混合可以将组之间的可复用部分抽离,从而在组件中使用混合时,可以将混合的数据(data),事件以及方法注入到组件之中。混合分为两种:
默认式混合
兼容式混合
默认式混合

对于组件data数据(data),events事件 采用默认式混合,即如果组件未声明该数据(data),组件,事件,自定义方法等,那么将混合对象中的选项将注入组件这中。对于组件已声明的选项将不受影响。
兼容式混合

对于组件methods响应事件,以及小程序(procedure)页面事件将采用兼容式混合,即先响应组件本身响应事件,然后再响应混合对象中响应事件。
event。js
var events = {};function on(name, self, callback) { var tuple = [self, callback]; var callbacks = events[name]; if (Array。isArray(callbacks)) {
  callbacks。push(tuple); } else {
  events[name] = [tuple]; }}function remove(name, self) { var callbacks = events[name]; if (Array。isArray(callbacks)) {
  events[name] = callbacks。filter((tuple) = gt; {
   return tuple[0] != self;
  }) }}function emit(name, data) { var callbacks = events[name]; if (Array。isArray(callbacks)) {
  callbacks。map((tuple) = gt; {
   var self = tuple[0];
   var callback = tuple[1];
   callback。call(self, data);
  }) }}exports。on = on;exports。remove = remove;exports。emit = emit;
invoke。js
function getAllPages() { let stack = getCurrentPages(); // 第一个入栈 stack。forEach((item) = gt; {
  if (myStatcks。length === 0) {
   myStatcks = stack。concat();
  } else {
   for (let i = 0, _len = myStatcks。length; i lt; _len; i++) {
  let ele = myStatcks[i];
  if (ele。__rOUT(出局)e__ === item。__route__) {
   myStatcks[i] = item;
   break;
  } else {
   myStatcks。push(item);
   break;
  }
   }
  } }); // } return myStatcks;}module。exports = function $invoke(rOUT(出局)er, method, args) { let pages = getAllPages(); let targetPage; for (let index = 0, _len = pages。length; index lt; _len; index++) {
  if (pages[index]。宁波微信小程序开发其中,通过公众号关联,用户可以实现公众号与小程序之间相互跳转。小程序体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。 __rOUT(出局)e__ === router) {
   targetPage = pages[index];
   break;
  } } targetPage[method]。call(targetPage, 。。args);}
xcx。宁波微信小程序开发是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。js

© 2008-2019 浙江东美 ALL RIGHTS RESERVED. XMLBAIDU
找网站建设公司就上东美!
189-6833-3365
tel+86-189-6833-3365