开发者选型:小程序原生or 小程序框架?

从2017年小程序推出以来,小程序的发展可谓突飞猛进。其流量入口多、易于传播且开发成本低的特性,使得越来越多的企业摒弃原生开发选择小程序。市场业务需求也越来越大,但是对于开发者来说哦,用原生去开发小程序很难受,尤其是业务比较复杂的项目如果用原生开发很难去管理和迭代。

小程序原生开发的缺点

  • 代码量大:原生开发的代码量相对较大,需要编写更多的代码来实现相同功能。
  • 开发效率:由于语法灵活度和组件数量的限制,原生开发效率可能较低。
  • 多平台适配成本:如果需要适配多个小程序平台,如微信、支付宝、百度等,原生开发需要为每个平台单独编写代码,导致开发成本增加。

有需求就会有市场,针对各家小程序原生开发的困境,各种小程序框架也陆续推出。

1、Wepy

WePY (发音: /'wepi/)是一款让小程序支持组件化开发的框架,是腾讯团队开源的类Vue语法规范的小程序框架。支持组件化开发,数据绑定和Vue的多种特性。非常适合喜欢Vue.js风格的开发者。

而且通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。Promise,Async Functions的引入都是为了能让开发小程序项目变得更加简单,高效。

主要特性:

  • 组件化开发:支持将页面拆分为多个组件,每个组件拥有自己的样式、模板和逻辑,提高代码的复用性和可维护性。
  • 支持自定义组件:允许开发者定义和使用自定义组件,增强了应用的功能扩展性。
  • NPM包管理:支持引入外部 NPM 包,方便管理和使用第三方库。
  • 单文件模式:采用单文件组件模式,使得目录结构更清晰,开发更方便。
  • ES6/7 特性支持:默认使用 Babel 编译,支持 ES6/7 的一些新特性,如箭头函数、模块化导入导出等。
  • Promise 支持:框架默认对小程序提供的 API 进行了 Promise 处理,可以使用 async/await 等新特性进行开发。
  • 编译器支持:支持多种编译器,如 Less、Sass、Stylus、PostCSS、Babel、Typescript、Pug 等。

Github :https://github.com/Tencent/wepy
官网:https://tencent.github.io/wepy

2、mpvue

同样是使用Vue.js开发小程序,来源于美团点评开源的框架。提供完整的Vue.js开发体验,包括组件化开发能力和Vuex数据管理。同样适合熟悉Vue.js的开发者,希望在小程序中使用Vue.js开发体验。

主要特性:

  • 彻底的组件化开发能力:提高代码复用性
  • 完整的 Vue.js 开发体验
  • 方便的 Vuex 数据管理方案:方便构建复杂应用
  • 快捷的 webpack 构建机制:自定义构建策略、开发阶段 hotReload
  • 支持使用 npm 外部依赖
  • 使用 Vue.js 命令行工具 vue-cli 快速初始化项目
  • H5 代码转换编译成小程序目标代码的能力

Github:GitHub - Meituan-Dianping/mpvue: 基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系。
官网:mpvue.com

3、Taro

由京东凹凸实验室开发的,遵循React语法规范的多端统一开发框架。允许一次编写,多端运行,支持编译到微信小程序、H5、App端等。提供现代前端开发流程,包括NPM包管理、ES6+语法支持等。

主要特性:

多端编译:Taro 可以将源代码编译为不同小程序平台的代码,实现跨平台运行。

丰富的组件库:Taro 提供了一套丰富的组件库,这些组件库与 React 组件相似,便于开发者快速构建界面。

插件系统:Taro 支持插件扩展,允许开发者通过插件来扩展 Taro 的功能,如添加新的编译目标或集成第三方服务。

热更新:Taro 支持热更新机制,允许开发者快速迭代产品,无需用户重新下载即可体验新功能。

TypeScript 支持:Taro 支持 TypeScript,为开发者提供了静态类型检查,提高了代码质量和开发体验。

UI 框架整合:Taro 允许整合市面上流行的 UI 框架,如 Ant Design Mobile 等。

官网:http://taro.aotu.io/
GitHub: GitHub - NervJS/taro: 开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/

4、Chameleon

Chameleon(简写 CML)是由滴滴出行开源的一款跨端框架,它允许开发者使用一套代码来构建并运行在多个小程序平台以及其他端上,如微信、支付宝、百度、头条、QQ等,同时也支持H5和客户端

主要特性:

目录结构:提供规范化的项目结构,适合于企业级大型应用的开发。

视图层:视图层由CML与CMSS编写,核心是一个标准响应式数据驱动视图更新。

逻辑层:逻辑层由javascript编写,逻辑层将处理数据后自动更新视图,提供视图层的事件响应方法。

多态协议:提供了跨端时各端底层组件与接口统一的解决方案。

规范校验:为了提高开发的效率与代码的可维护性,提供了全面的代码规范与校验。

官网:https://cml.js.org

GitHub: GitHub - didi/chameleon: 🦎 一套代码运行多端,一端所见即多端所见

5、Tina.js 

Tina.js 是个开源的微信小程序框架,这个小程序框架比较小众,GitHub 上该框架被描述为“一款轻巧的渐进式微信小程序框架。
特性: 轻盈小巧。 极易上手,保留 MINA (微信小程序官方框架) 的大部分 API 设计;无论你有无小程序开发经验,都可以轻松过渡上手。 渐进增强,既有状态管理器,也有路由增强,还可以自己编写插件。

Tina.js 开源框架地址:GitHub - tinajs/tina: :dancer: 一款轻巧的渐进式微信小程序框架

6、FinClip

严格意义上来说FinClip 并不是一款小程序框架,FinClip是一款小程序容器技术,不论是移动 App,还是电脑、电视、车载主机等设备,在集成FinClip 小程序 SDK之后,都能快速获得运行小程序的能力。

除了微信、支付宝、美团等流量平台之外,想要把已有小程序上架到app,必须依赖小程序的底层容器引擎。

除了小程序本身的运行能力以外,例如 FinClip 这样的小程序容器技术还具备对小程序全生命周期进行管理的能力。对于第三方的支持度也是较好,具体可以查阅相关的测评:小程序框架与平台编译对比

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

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

相关文章

C++ STL概念之 序列式容器4(bitset / array / forward_list / deque)

bitset 接口 set all bits (1) bitset& set() noexcept;single bit (2) bitset& set (size_t pos, bool val true); 用于序列中的一位或所有位设置为1。 bitset& set() noexcept; 这个版本将位序列中的所有位都设为1。 bitset& set(size_t pos, bool val …

Java 高级面试问题及答案2

Java 高级面试问题及答案 问题 1: 请解释 Java 中的多线程和并发的区别,并举例说明如何避免常见的并发问题。 答案: 多线程是指程序中有多个线程同时执行,而并发是指程序设计中允许多个操作看起来是同时执行的,即使它们可能不是…

视频智能检测AI智能分析网关V4告警消息推送:公众号消息推送的配置步骤介绍

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备,目前拥有3种型号(8路/16路/32路),支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

继承,多态,封装以及对象的打印

前言: 我们都知道Java是一种面向对象的编程语言,面向对象语言的三大特性就是继承,多态,封装,而这些特性正好的Java基础的一个主体内容。在学到这之前,我们肯定已经学习过了类和对象,所以这部分…

光学镜片镀膜上下料设备

在现代化工业生产的浪潮中,智能化、自动化已成为提升生产效率、降低成本的关键所在。特别是在精密制造领域,对于设备的高精度、高效率要求更是严苛。今天向大家推荐一款引领行业潮流的智能设备——富唯智能镀膜上下料设备。 产品介绍 实现功能 单面镀膜…

NGINX SPRING HTTPS证书

服务器:xxx.xxx.xxx.56 客户端器:xxx.xxx.xxx.94##生成服务器证书和密钥容器 keytool -genkey -alias tas-server -keypass 250250 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\https证书\tas-server.jks -storepass 250250 -dname "C…

IT行业的现状与未来:技术创新引领时代变革

随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。本文将探讨当前IT行业的现状及未来发展趋势,并邀请行业领袖、技术专家和创…

低成本创业分享,一个不用自己囤货、进货、直播的项目|抖音小店

大家好,我是喷火龙 在抖音上面开店,不仅可以卖自己的商品,还可以卖别人的商品赚差价, 并且不需要你囤货、进货、直播、剪视频,也不需要有粉丝。 这个项目就是抖音小店无货源。 很多朋友对抖音小店无货源模式的玩法…

tensorrtx-yolov5-v6.0部署在windows系统

前言:最近几天一直在搞这个东西,现在跑通了,为了以后自己看和帮助他人,就记录一下。虽然是跑通了但是觉得怪怪的,感觉不是自己想要的效果,另外这个只能检测图片,不能摄像头实时监测(我暂时没找到…

MATLAB实现BFGS算法,用wolfe选择步长

BFGS 算法简介 BFGS(Broyden-Fletcher-Goldfarb-Shanno)算法是一种用于无约束优化问题的准牛顿法。它通过构建和更新近似的海森矩阵(Hessian Matrix)来加速优化过程。BFGS 是一种常用且有效的优化算法,尤其适用于大规…

python脚本-修改.xlsx表格内“符合条件的”单元格样式(字体颜色、底色)

方法一 创建新的表格,将源表格的值写入新表格内(写之前check每个单元格,进行样式设置),这种做法会让“未指定样式的单元格”默认样式写入 # codingutf-8 import pandas as pd from openpyxl.styles import Font,Patt…

spring 约定优于配置 spring boot约定大于配置

目录 约定优于配置 SpringBoot 中的约定优于配置 约定优于配置的起源 约定优于配置 约定优于配置:也称作按约定编程是一种软件设计范式。目的在于减少软件开发人员所需要做出决定的数量,从而获得简单的好处,而又不失其中的灵活性。开发人员仅…

Linux磁盘I_O性能优化:调整请求队列长度

在本篇博客中,将探讨如何在CentOS系统上调整磁盘I/O请求队列长度,以改善机械硬盘(HDD)和固态硬盘(SSD)的读写性能。调整请求队列长度是一个高级优化策略,可以帮助减少I/O操作的延迟,…

springsecurity项目快速搭建

自定义security的搭建 package com.sangeng.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Co…

智能文档处理:解析文档场景下多模态大模型的应用与研究前沿

解析文档场景下多模态大模型的应用与研究前沿 一、TextIn 文档解析技术1. 现有大模型文档解析问题2. 文档解析技术背景3. TextIn 文档解析技术架构4. 版面分析关键技术 Layout-engine 二、TextIn 文本向量化技术三、TextIn.com Text Intelligence 一、TextIn 文档解析技术 hell…

【driver6】debugfs,性能优化,

文章目录 1.内核调试手段:debugfs.h中api建立目录/sys/kernel/debug2.性能优化:裸磁盘无法使用,一般都刷文件系统。驱动加上要考虑磁盘io,内存占用,cpu使用情况3.Valgrind内存泄漏排查案例:4.cpu瓶颈&#…

英语学习笔记10——Look at ...

Look at … 看…… 词汇 Vocabulary fat adj. 胖的,丰富的 n. 脂肪 例句:他是个胖男孩。    He is a fat boy. 搭配:fat cat 有钱人,土豪 woman n. 女人 girl n. 女孩 madam n. 女士 man n. 男人 boy n. 男孩 sir n. 先生 …

云飞云共享云桌面如何降低电脑投入成本?

云飞云共享云桌面作为一种创新的云计算解决方案,以其独特的优势在业界赢得了众多认可。其中,它极大地降低了电脑投入成本,为企业和个人用户带来了实实在在的经济效益。那么,云飞云共享云桌面是如何实现这一点的呢? 设…

spring-boot-cache整合redis

引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>…

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 目录 Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 一、简单介绍 二、监督学习 三、分类问题 四、回归任务 五、泛化、过拟合和欠拟合…