小程序开发中的插件、组件、控件到底有什么区别?

news2024/11/25 7:09:17

小程序插件代码由一些自定义组件和 JS 代码文件构成,插件开发者在发布插件时,这些代码被上传到后台保存起来。当小程序使用插件时,使用者需填写插件的 AppID 和版本号,就可从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。

由于在小程序开发中需要引入插件,但同事问起的时候还是被几个概念难住了,虽然能够了解大致的含义,但是对于每一个概念的理解又不是很深入,所以深入学习了解了几个“概念模糊”的知识点,可能大家和我一样对于插件、组件、控件 等概念还存在一定的混淆,或者没有完全了解清楚之间的区别,在这里也分享给大家。

到底什么是插件

先按照官方的一些解释来看看插件的概念描述?

微信小程序官方描述:

插件,是可被添加到小程序内直接使用的功能组件。开发者可以像开发小程序一样开发一个插件,供其他小程序使用。同时,小程序开发者可直接在小程序内使用插件,无需重复开发,为用户提供更丰富的服务。

支付宝小程序官方描述:

插件是一种独立封装的软件模块,用来承载企业的能力或者服务,便于宿主小程序进行快捷集成。和普通组件不同的是,插件拥有独立的应用和独立的上下文,即数据、业务逻辑和服务端连接。当小程序应用需要使用插件的服务时,加载和运行插件,以使得插件访问自身的数据与服务端,完成对应的服务;而在小程序不需要使用插件的服务时,只需要运行小程序应用本身,访问小程序应用自身的数据服务端。插件和宿主小程序上下文是互相隔离的,即小程序应用不能直接访问插件的数据,也不能获得插件的权限,反之,插件也不能直接访问小程序的数据,也不能获得小程序的权限。

插件vs组件vs控件

为了进一步直观的了解插件、组件、控件之间具体的差异,我用一张表罗列了彼此之间的对比:

名称

英文单词

概念

显著的特点

插件

plugin & addin

算是组件的一种,在原有的应用程序中,已经给它们预留了接口。接口,简言之就是一种规范。

可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。

即插即用,支持动态的插入

在应用程序中已经预留接口的组件就是插件

可直接提供服务

可以独立进行发版,开发和升级更高效

运行时框架提供上下文隔离机制,插件内部的数据安全性更有保障

组件

component

提起组件我们不应该把他和具体的技术,什么dll文件,ocx控件,activex等等联系起来,因为组件仅仅是一个概念,如果非要解释的话,那就是凡是在软件开发中用到了软件的复用,被复用的部分都可以称为组件,组件是给开发者提供的轮子,不能直接提供服务。

参考机械制造中的“零件”,它好比是组装在一起的满足一个功能单元的一组元件。

仅是一个宽泛的概念

是给开发者提供的轮子,不能直接提供服务

控件

control & widget

也算是组件的一种,顾名思义,用来给用户做控制的。做用户图形界面设计时,有一些“复选框”、“按钮”之类的东西,这些都是控件。所以可以把它理解为用来做可视化的一类组件。

是“可视化”的,例如表单中的按钮、文本框等

小程序插件的价值

小程序插件,顾名思义是用于小程序运行调用的插件,小程序插件的广泛推广使用可以实现“开发资源共享”、“可便捷强化能力”、“商业化变现”等积极作用

1.开发共享,避免重复开发

在小程序内使用插件,可免去小程序开发者重复开发,一定程度上减少了开发工作量。例如:在小程序可以使用地图插件,开发者无需在小程序内独立开发地图内导航、出行指引、周边服务推荐等能力,直接使用地图插件即可为用户提供导航服务,免去很大量的开发工作。

2.强化能力,打造卓越产品

我们自己的技术、精力和成本都是非常有限的,开发出来的小程序的能力可能比较单一,如果想要应用到更多更复杂的功能就能够通过快速引入小程序插件的方式增强自己的产品能力。例如:想要在小程序实现产品的销售,使用店铺插件,用户即可通过小程序完成产品预订、购买、评价等功能。

3.商业变现,能力有目共睹

插件支持商业订购和结算,质量优秀和普适性较高的小程序插件可以借助各大平台的小程序插件市场对开发的插件进行封装售卖,便于开发者进行服务变现和商业化。

小程序插件的技术原理

插件本身的技术原理并不复杂。插件的木质是在不修改程序主体的情况下对软件功能进行加强,当插件的接口被公开时任何人都可以自己制作插件来解决一些操作上的不便或增加一些功能。

一个插件框架包括两个部分:主程序(host)和插件((plug-in)。主程序即是“包含”插件的程序,插件必须实现若干标准接口,由主程序在与插件通信时调用。

插件商业变现的建议

目前开发者完成小程序插件的开发后,可以将自己的插件上架到微信小程序插件市场、支付宝小程序插件市场、FinClip 小程序应用市场等。前两者不言而喻是最大的小程序生态市场,变现的能力较为强劲,而 FinClip则主要是面向 B 端用户群的小程序容器技术,利用其技术一些企业可以在自有 App 运行小程序,或者将自有小程序转化为 App ,这两类场景也都有集成小程序插件的场景,也同样具有一定的潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 CentOS 7 构建 LVS-DR 群集

如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!! 前言: 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式其各自的优势 DR 模式 原理:首先…

Hadoop之block切片

切片是一个逻辑概念 在不改变现在数据存储的情况下,可以控制参与计算的节点数目 通过切片大小可以达到控制计算节点数量的目的 有多少个切片就会执行多少个Map任务 hdfs上数据存储的一个单元,同一个文件中块的大小都是相同的 因为数据存储到HDFS上不可变&#xff0…

Qt--QString字符串类、QTimer定时器类

目录 1. QString 字符串类 dialog.cpp 2. 容器类 2.1 顺序容器 QList 示例代码: student.h student.cpp dialog.h dialog.cpp 运行结果: 2.2 关联容器 QMap 示例代码: dialog.h dialog.cpp 运行结果: 3. Qt类型 3.1 跨平台数据类型…

中断相关内容大全

中断基本概念:程序中断指计算机执行现行程序过程中,出现某种急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,处理完毕后CPU又自动返回到现行程序的断点处,继续…

【刷题之路】LeetCode24——详解两两交换链表中的结点的细节

一、题目描述 原题链接:https://leetcode.cn/problems/swap-nodes-in-pairs/comments/ 题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即&am…

linux下将结果保存为图片,因为服务器是命令行界面,无法弹出窗口

解决方法来自GitHub:https://github.com/open-mmlab/mmdetection/issues/1405 The code below can show and save image with result. import mmcv import cv2 from mmcv.runner import load_checkpoint from mmdet.models import build_detector from mmdet.apis i…

C语言结构体位域

目录 一、C语言位域是什么? 二、位域详解 定义格式: 1. 数据类型排序改变,位域长度不变 2. 数据类型排序不变,位域长度改变 3.根据以上代码的验证可以得出以下计算位域结构体数据的方法: 三.位域的结构体数据如何进行print…

感恩有你:毕业论文致谢部分写作指南

现在正值毕业论文写作最后收尾阶段,估计很多同学开始各处收集如何写致谢这个部分。之前写过一篇文章中引用一位导师的“抱怨”,文章题目为“211导师深夜含泪发文:在你长达5万字的毕业论文中,我最欣赏致谢部分”,所以为…

Java面试题spring

Spring 1、不同版本的 Spring Framework 有哪些主要功能? 2、什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。 它具有分层体系结构,允许用户选择组件&#xff0c…

国考省考行测:资料分析题,年均增长量

国考省考行测:资料分析题,年均增长量 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申…

Docker基础篇

1、为什么Docker比VM快 2、帮助启动类命令 启动类命令 启动docker: systemctl start docker停止Docker: systemctl stop docker重启Docker: systemctl restart docker查看状态: systemctl status docker设置开机自启&#x…

stable diffusion webui 教程:安装与入门

stable diffusion webui 安装与入门 一、源码仓库二、模型库地址三、在 Windows 上自动安装步骤安装Python安装git下载源代码编辑 webui-user.bat 四、如何打开五、依据文字生成图片六、API在哪里?七、用python调用API接口示例八、如何制作生成精美的图片1、下载模型…

Qt--多窗口编程

目录 1. QMessageBox 消息对话框(掌握) 示例代码: dialog.h dialog.cpp dialog.ui 运行结果: 2. 窗口类继承关系 dialog.cpp 3. QMainWindow 主窗口类 3.1 QMenuBar 菜单栏 3.2 QToolBar 工具栏 3.3 QWidget 中心组件 3.4 QStatu…

外强中干——双向带头循环链表

前言:众所周知,链表有八种结构,由单向或双向,有头或无头,循环或不循环构成。在本篇,将介绍8种链表结构中最复杂的——双向带头循环链表。听着名字或许挺唬人的,但实际上双向带头循环链表实现起来…

九盾安防智能叉车管理系统告诉你叉车电池安全使用的十要点

叉车电池是叉车的动力源,对于保证叉车安全运行具有非常重要的作用。但是,叉车电池在使用过程中也会存在一些安全问题,如果使用不当可能会引起严重后果。下文就九盾安防智能叉车管理系统介绍叉车电池安全使用的十要点。 一、保证通风良好。在使…

课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)

文章目录 📋前言🎯第三题(40分)🎯报错以及解决方法📝最后 📋前言 这篇文章是大学课程《JavaWeb基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题&#…

2直接连接的网络与VLAN划分-2.3【实验】【计算机网络】

2直接连接的网络与VLAN划分-2.2-2.3【实验】【计算机网络】 前言推荐2直接连接的网络与VLAN划分2.1共享式以太网和交换式以太网2.2交换机MAC地址表建立与帧转发2.3 STP工作过程实验目的实验内容及实验环境实验原理物理环路引发的问题1:广播风暴物理环路引发的问题2:MAC地址表翻…

ChatGPT之公文写作

公务文章主要适用于政府部门、机关、事业单位以及其他公共组织的文件、公告、通知等文稿。 根据《党政机关公文处理工作条例》,公文种类主要有15种。按照行文流向,可以分为上行文、平行文、下行文。 1、上行文:请示、报告、意见。 2、平行…

Qt 文件IO

目录 1. QFileDialog 文件选择对话框 示例代码 dialog.h dialog.cpp dialog.ui 运行效果: 2. QFileInfo 文件信息类 dialog.cpp 3. QFile 文件读写类 UI与耗时操作 QThread 线程类 1 复现阻塞 dialog.h dialog.cpp 2.新建并启动子线程 mythread.h mythread.cpp dial…

Py之tf2onnx:tf2onnx库的简介、安装、使用方法之详细攻略

Py之tf2onnx:tf2onnx库的简介、安装、使用方法之详细攻略 目录 tf2onnx库的简介 tf2onnx库的安装 tf2onnx库的使用方法 1、基础用法 tf2onnx库的简介 tf2onnx是一个将TensorFlow(tf-1.x或tf-2.x)、keras、tensorflow.js和tflite模型转换…