一 概述

  • 插件是对js接口(export一些js接口方法),自定义组件或页面的封装,用于嵌入到小程序中使用
  • 插件的开发和上传发布和小程序一样,插件一旦发布,第三方使用时无法查看插件的代码
  • 插件开发完成,未发布前,可以使用miniprogram目录中编写小程序代码来测试插件

二 插件目录结构介绍

2.1 创建插件项目

2.2 默认插件项目

插件项目预览

插件项目目录介绍

  • plugin目录:插件代码目录
  • miniprogram目录:防止一个小程序,用于调试插件
  • doc目录:用于放置插件开发文档

插件(plugin)目录结构

个插件可以包含若干个自定义组件、页面,和一组 js 接口

plugin
├── components
│   ├── hello-component.js   // 插件提供的自定义组件(可以有多个)
│   ├── hello-component.json
│   ├── hello-component.wxml
│   └── hello-component.wxss
├── pages
│   ├── hello-page.js        // 插件提供的页面(可以有多个,自小程序基础库版本 2.1.0 开始支持)
│   ├── hello-page.json
│   ├── hello-page.wxml
│   └── hello-page.wxss
├── index.js                 // 插件的 js 接口
└── plugin.json              // 插件配置文件

三 插件开发(将组件包装成插件)

3.1 自定义组件开发

my-component.json配置

{"component":true,"usingComponents": {}
}

my-component.wxml页面

<view class="list" wx:for="{{list}}" wx:key="*this"><text>我是第{{item}}项</text>
</view>
<button bindtap="addItem">add</button>
<button bindtap="delItem">del</button>

my-component.wxss样式

.list{text-align: center;background-color: #ccc;border-top: 1rpx solid #fff;
}

my-component.js—自定义组件

Component({data: {list: [1, 2, 3, 4, 5]},methods: {addItem: function () {var list = this.data.listlist.push(list.length + 1)this.setData({list: list})},delItem: function () {var list = this.data.listif (list.length > 0) {list.pop()}this.setData({list: list})}}
})

3.2 插件的js接口方法(index.js)

module.exports = {sayHello() {console.log('Hello plugin!')},answer: 42
}

3.3 插件配置文件(plugin.json)

{"publicComponents": {"my-component": "components/my-component"},"main": "index.js","pages": {"index": "pages/index"}
}

说明:

  • my-component:自定义组件
  • index:pages/index页面
  • index.js:所有js接口方法

四 插件的测试(miniprogram)

4.1 miniprogram/pages/index/index.json配置

{"usingComponents": {"my-list": "plugin://my-plugin/my-component"}
}

4.2 使用

miniprogram/pages/index/index.wxml

<navigator id="nav" url="plugin://my-plugin/index">Go to Plugin page
</navigator>
<my-list/>

miniprogram/pages/index/index.wxss

#nav {text-align: center;background: #eeeeee;margin: 1em;padding: 1em;border-radius: 5px;
}#add {margin: 1em;
}

miniprogram/pages/index/index.js

const plugin = requirePlugin('my-plugin')
Page({data: {items: [],currentItem: 0},onLoad() {plugin.sayHello()const world = plugin.answerconsole.log(world)}
})

五 参考

  • 官方文档—开发插件
  • CSDN—参考代码

微信小程序开发之——插件相关推荐

  1. 微信小程序开发(十三)富文本插件wxParse的wxParseImgTap的bug修复

    在上一篇微信小程序开发(十二)富文本插件wxParse的使用中,我已经使用了wxParse插件.下午有时间就仔细的把玩了一下,发现了一个bug. 问题描述 仔细看报错,我们会发现是wxParse.js ...

  2. 可视化微信小程序开发小助手-Troll (VS Code插件)

    目录 1.开场白 2.安装 3.主要用法 3.1启动/切换Troll编辑器 3.2编辑视图切换 切换到Troll编辑 切换到文本编辑 3.3图形操作 3.3.1基本图元 3.3.2基础操作 3.4 添 ...

  3. 微信小程序开发必备的八个插件

    wechat-snippet 微信小程序代码辅助,代码片段自动完成 minapp 微信小程序标签.属性的智能补全(同时支持原生小程序.mpvue 和 wepy 框架,并提供 snippets) wxa ...

  4. 与张小龙同行:微信小程序开发

    与张小龙同行:微信小程序开发 概要 基于微信小程序轻快的特点,我们拟定了小程序界面设计指南和建议. 设计指南建立在充分尊重用户知情权与操作权的基础之上.旨在微信生态体系内,建立友好.高效.一致的用户体 ...

  5. 五大微信小程序开发IDE深度评测

    微信小程序已经内测有一段时间了,笔者本着好奇加学习的心态写了几个小demo,虽然在MINA框架上并没有遇到太多的坑,但官方开发工具实在不敢恭维. api提示不全,要一个个查api啊,写代码超级慢啊 很 ...

  6. 微信小程序开发工具最新版本已更新下载(1.02.1804120)

    下载地址: windows 64 . windows 32 . mac 本次更新修复信息如下: 1.修复 1.02.1804080 引入的编译条件为分包内页面时无法加载的问题 1. 更新到最新版本后 ...

  7. uniapp手写_【转】uni-app框架纯手写微信小程序开发左侧滑动菜单

    本帖最后由 fengrui99 于 2020-7-22 14:38 编辑 原文来自:在学习的uni-app的微信小程序开发路上慢慢开始不一直依赖插件(但是使用插件是真的香,一直用一直香) 在大佬的指引 ...

  8. 详解微信小程序开发(项目从零开始)

    关注公众号 风色年代(itfantasycc) 280G前端&小程序资料随便拿! 详解微信小程序开发(项目从零开始) 一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍 ...

  9. 微信小程序开发的基本用法

    微信小程序开发的基本用法 1.数组或对象的遍历 1.1.数组遍历 wx:for="{{数组或对象}}" wx:for-item="循环项的名称" wx:for- ...

最新文章

  1. HDU1301(最小生成树)
  2. TJU Problem 1065 Factorial
  3. bioskey的用法
  4. python学习路线----天池龙珠计划Python训练营task1~3
  5. linux上mysql卸数_Linux下MySQL卸载和安装图文教程
  6. 哈夫曼编码+python实现
  7. 华为鸿蒙mate,华为MatePad Pro发布亮相!华为首款鸿蒙平板全新体验!
  8. 让你认识Android 开发简介及应用程序架构示例
  9. CrossApp推出移动应用开发神器 CrossApp Style
  10. 边缘检测之LoG算子(高斯-拉普拉斯算子)
  11. Java Web 上应用良田高拍仪二次开发
  12. 程序员打造影响力常犯的 3 个错
  13. 使用poi把Java对象转换成excel
  14. js如何获取中午12点的时间
  15. 程序人生|五年java 含泪总结,建议小白看
  16. 乐理基础知识-4.音程
  17. java流控_t-io小教程:tio-http内置的流控功能
  18. Win10下永久性关闭自动更新(可恢复更新)最简单有效的方法《亲测有效》
  19. 【python学习】——BUG
  20. 微信小程序拼接字符串完成复制功能

热门文章

  1. 雷达感应模组,自动播放讲解仪雷达应用,雷达传感器技术
  2. MODBUS-寄存器与功能码学习
  3. Public key for jenkins-2.288-1.1.noarch.rpm is not installed的解决方法
  4. 第二阶段(day06)jquery2
  5. java修改图形属性_开发者选项 Disable HW overlays - 分析
  6. Cadence16.5 叠层设置怎样设置正片负片
  7. 家具百货商城系统设计开发
  8. c语言large==1,非常实用的两个大小位置函数:LARGE函数和SMALL函数
  9. MathType使用中提示There was a problem sending your equation preferences for this document to MathType
  10. 初中计算机学业水平考试,初中信息技术学业水平考试知识点(操作题)