继上次 手把手教你实现微信小程序中的自定义组件 已经有一段时间了(不了解的小伙伴建议去看看,因为插件很多内容跟组件相似),今年3月13日,小程序新增了 小程序**「插件」 功能,以及开发者工具新增 「代码片段」**功能,即在小程序基础库 1.9.6 版本上,允许开发者开发插件,同时将插件提供给其它小程序使用,这无疑给开发者带来了福音,因为不同的小程序之间可以共享代码啊,这将省去不少的开发成本了~ 小程序插件接入小程序插件不像自定义组件那样,很方便的就可以嵌在自己的代码中了,它是需要去官网开通小程序插件功能才能使用的,详细的接入流程和文档可以阅读官方的小程序插件接入指南,当然这不是我们本篇文章的重点,本篇文章重点是教你如何开发一个微信小程序插件~
具体实现建立模板要开发一个小程序插件,前期准备要充分,我们打开在开发者工具中,我们按照正常步骤新建一个小程序项目,并选择 「建立插件快速启动模板」 ,没有
项目结构插件项目建立完成之后,开发者工具就会自动新建一个插件项目,官网给的示例项目的结构如下:
我们先大概了解一下~ 项目中包含了两个目录:
前者就跟普通小程序一样,我们可以正常开发,后来用来插件调试、预览和审核,不同的是
{ "publicComponents": { "list": "components/list/list" }, "main": "index.js" }具体实现有些人可能纳闷了?觉得官方不是现成的示例了,为啥我还要写这篇文章呢?在我看来,官网给的示例过于简单,不足以展示插件的用法,官方给的示例中很多东西都没有涉及到,只是单纯的数据列表渲染,没有交互,这在实际开发中几乎是不存在的,大部分情况下,我们都是要通过插件的回调来进行一系列操作,本篇文章就是专门针对微信官网示例的痛点,分享一下自己的实现过程和思路~ ok,老规矩,首先先定一个小目标,我们要实现一个省市区选择器的插件,并在点击提交按钮的时候把数据提交过去,大整效果如下图所示~
Step1首先,我们在
代码如下: 结构 <view class='section'> <view class="section-title">省市区选择器</view> <picker mode="region" bindchange="bindRegionChange" value="{{region}}" > <view class="picker"> 当前选择:{{region[0]}},{{region[1]}},{{region[2]}} </view> </picker> </view>样式 js Component({ properties : { region : { type : Array , value: ['北京市', '北京市', '东城区'] } }, data: { }, methods : { bindRegionChange(e){ this.setData({ region: e.detail.value }) } })跟我们书写自定义组件基本相同,数据绑定在 Step2到这里,你已经实现了一个自定义的组件,如何将其以插件的形式让其他小程序应用呢,需要配置两个地方,一个是
{ "publicComponents": { "regionPicker" : "components/regionPicker/regionPicker" }, "main": "index.js" }另一个是在我们需要的页面中去引入(这里是
{ "usingComponents": { "regionPicker" : "plugin://myPlugin/regionPicker" } }接着页面中调用一下即可
<!--引入插件 --> <regionPicker /> <button class='submit'>提交</button>现在你看到的效果基本也就是下图这样了~
嗯,看起来功能都正常,好像也没什么问题啊~ 不对,好像又有问题了,我切换后的数据怎么传过来,我点击提交按钮的时候怎么穿我选择区域呢,确实是,我们接着看~ Step3我们接下来就要解决上面的问题,首先,我们有了之前开发组件的经验,应该都知道,我们刚才是在 嗯,其实回调触发也很简单,有过自定义组件开发经验的小伙伴应该早都想到了,跟自定义组件一样,我们只需要在组件 bindRegionChange(e){ this.setData({ region: e.detail.value }) // 触发回调 this.triggerEvent("changeEvent", { region: this.data.region}) }我们把每次的改变值通过回调穿回去,这样我们直接在
Page({ data: { region: ['广东省', '广州市', '海珠区'] }, submit(){ console.log(this.data.region) }, changeEvent(e){ console.log(e) this.setData({ region : e.detail.region }) }, onLoad(){ } })这样,每次选择区域后,通过回调触发,我们就可以通过
到这里,插件的数据交互传递基本没什么问题了~ 想想,我们还有什么没有用到的呢,插件的 Step4我们知道了
版权声明 即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
|
手把手教你开发微信小程序中的插件
浏览量:1000
时间:
来源:极乐叔





















