uniapp 中支付宝小程序自定义组件的调用


uniapp 这个缝合怪,挺厉害的,啥都能做,甚至你能够使用小程序的原生组件。
具体文档:
https://uniapp.dcloud.io/frame?id=%e5%b0%8f%e7%a8%8b%e5%ba%8f%e8%87%aa%e5%ae%9a%e4%b9%89%e7%bb%84%e4%bb%b6%e6%94%af%e6%8c%81

调用坑

写法1:

<example @get="onGet" />

如果这样写,那么会走向 uniapp 的事件分发,但是支付宝这里事件的默认参数是 undefined,拿不到事件信息,所以这里会抛出 js 异常

写法2:

<example onGet="onGet" />

使用小程序原生写法,会报 event not found,这是因为 uniapp 对事件有自己的封装,没有直接暴露给小程序,添加以下模板代码之后,可以调用成功:

this.$scope.onGet = this.onGet.bind(this)

优化

如果使用组件比较多,模板代码可以放到 webpack loader 中去实现,思路就是模板中使用 onGet 写法的通过正则找出来,然后再 onLoad() 中挂载上去。

当我写好了 loader,并且 uniapp 编译成功之后,打开小程序编译器,迎接秋天的美好的时候

a

悲剧…一天就这样过去了…啊啊啊!!!


 上一篇
抛弃 loadsh,封装更现代的防抖、节流 抛弃 loadsh,封装更现代的防抖、节流
一般意义上的防抖节流函数防抖(debounce)函数防抖,就是指触发事件后,在 n 秒后只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数的执行时间。简单的说,当一个动作连续触发,只执行最后一次。 函数节流(throttle)限制
2021-11-16
下一篇 
JavaScript 悟道读后感 JavaScript 悟道读后感
以前读过蝴蝶书🦋,对作者印象深刻,jsLint 尝试用过,几乎不可配置,在我的地盘,你就得乖乖听我的。 《JavaScript 悟道》这本书英文版本是 2019 年出版,中文版出的速度还是挺不错的,虽然 es 规范现在年年更新,但是书本身
2021-08-22
  目录