【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

微信小程序的下一步:支持 NPM、小程序云、可视化编程、支持分包

  • 2018-07-12
  • 本文字数:2533 字

    阅读完需:约 8 分钟

微信最新的数据显示,目前已发布小程序数量为 100 万 +,小程序开发者已达 150 万 +,小程序日均打开次数 4 次,主动访问的用户量为 54%,从这些数据可以看出,小程序俨然已经成为微信生态体系中最重要的组成部分。

7 月 11 日下午,微信公开课微信小程序技术专场在上海举行,会上,微信公布了面向开发者的技术规划,内容主要包括小程序技术能力与规划、小程序生态体系、小程序性能优化三个方面。

小程序技术能力规划

自定义组件 2.0

小程序的几个页面间,存在一些相同或是类似的区域,这时候可以把这些区域逻辑封装成一个自定义组件,代码就可以重用,或者对于比较独立逻辑,也可以把它封装成一个自定义组件,也就是微信去年发布的自定义组件,它让代码得到复用、减少代码量,更方便模块化,优化代码架构组织,也使得模块清晰,后期更好地维护,从而保证更好的性能。

但微信打算在原来的基础上推出的自定义组件 2.0,它将拥有更高级的性能:

  • usingComponents 计划支持全局定义和通配符定义:这意味着不用在每个页面反复定义,可以批量导入目录下的所有自定义组件
  • 计划支持类似 Computed 和 watch 的功能,它能使代码逻辑更清晰
  • 计划支持 Component 构造器插件,在实例化一个自定义组件的时候,允许你在构造器的这个阶段,加入一些逻辑,方便进行一些扩展,甚至是可以扩展成 VUE 的语法

npm 支持

目前小程序开发的痛点是:开源组件要手动复制到项目,后续更新组件也需要手动操作。不久的将来,小程序将支持 npm 包管理,有了这个之后,想要引入一些开源的项目就变得很简单了,只要在项目里面声明,然后用简单的命令安装,就可以使用了。

官方自定义组件

微信小程序团队表示,他们在考虑推出一些官方自定义组件,为什么不内置到基础库里呢?因为内置组件要提供给开发者,这个组件一定是开发者很难实现或者是无法实现的一个能力。所以他们更倾向于封装成自定义组件,想基于这些内置组件里,封装一些比较常见的、交互逻辑比较复杂的组件给大家使用,让大家更容易开发。类似弹幕组件,开发者就不用关注弹幕怎么飘,可以节省开发者的开发成本。

同时,他们也想给开发者提供一些规范和一些模板,让开发者设计出好用的自定义组件,更好地被大家去使用。

添加体验评分

当小程序加载太慢时,可能会导致用户的流失,而小程序的开发者可能会面临着不知道如何定位问题或不知如何解决问题的困境。

为此,小程序即将推出一个体验评分的功能,这是为了帮助开发者可以检查出小程序有一些什么体验不好的地方,也会同时给出一份优化的指引建议。

原生组件同层渲染

小程序在最初的技术选型时,引入了原生组件的概念,因为原生组件可以使小程序的能力更加丰富,比如地图、音视频的能力,但是原生组件是由客户端原生渲染的,导致了原生组件的层级是最高的,开发者很容易遇到打开调试的问题,发现视频组件挡在了 vConsole 上。

为了解决这个问题,当时微信做了一个过渡的方案:cover-view。cover-view 可以覆盖在原生组件之上,这一套方案解决了大部分的需求场景。比如说视频组件上很多的按钮、标题甚至还有动画的弹幕,这些都是用 cover-view 去实现的,但它还是没有完全解决原生组件的开发体验问题,因为 cover-view 有一些限制:

  • 无法与其他组件混在一起渲染
  • 没有完整的触摸事件
  • cover-view 对样式的表现有差异
  • cover-view 对样式的支持度不够高

因此微信决定将用同层渲染取代 cover-view,它能像普通组件一样使用,原生组件的层级不再是最高,而是和其他的非原生组件在同一层级渲染,可完全由 z-index 控制,可完全支持触摸事件。

微信表示,同层渲染在 iOS 平台小程序上已经开始内测,会很快开放给开发者,Android 平台已经取得突破性进展,目前正在做一轮封装的工作,开放指日可待。

生态规划

小程序云

小程序云是微信团队和腾讯云共同研发的小程序基础能力,它的特点是:无服务器搭建、无域名配置、能完整体验云端流程,可原生调用小程序 API,同步支持服务器 SDK,开发工具可视化管理云端服务。

小程序云的基础能力主要体现在云函数、数据库和文档存储上:

云函数的特点:

  • 云端运行的代码,无服务搭建
  • 客户端隔离,私密安全的运行空间
  • 微信数据管道协议接入,多种触发方式
  • 天然可信任的用户登录态
  • 开发工具一键上传部署

数据库的特点:

  • 高性能文档型数据库
  • 简单易用的 API 设计
  • 小程序 / 云函数多端调用
  • 基于微信登录态的安全控制规则

文件存储的特点:

  • 具有云端文件存储空间
  • 小程序内直接上传文件到云端
  • 带权限管理的云端下载
  • CDN 加速
  • 可视化管理

可视化编程

可视化编程是一种全新的小程序开发模式,通过简单的拖曳即可生成小程序,让那些不擅长前端技术的开发人员也能开发小程序,它能极大地降低开发门槛,打造更好的小程序视觉交互体验。

全面升级自动化测试

微信小程序计划推出一种全新的自动化测试引擎,它能够自定义测试语言,支持在开发工具上录制测试脚本,得出更权威、更系统的自动化测试报告。

打造小程序开发者社区

微信希望能够增加激励,鼓励开发者分享,搭建声望体系,增强小程序开发者的影响力并统一微信体系下包括小程序、公众号、微信支付、企业微信的开发体验,同时,微信还将部署更多的海外服务节点,提供测试号体验,完善开发流程,文档、教程、开发者工具实现多语言支持,丰富和推动小程序开发者社区的发展。

小程序的性能优化

为了优化小程序的性能,即将推出分包预下载和独立分包功能:

在性能优化上,微信官方还给出了以下建议:

  • 开发者要控制代码包的大小,及时清理无用代码和资源文件,减少代码中的图片等资源文件的大小和数量。
  • 分包加载,将小程序中不经常使用的页面放到多个分包中,主包只保留最常用的核心页面,启动时只加载主包,使用时按需下载分包,不要一次性下载整个代码包。
  • 首屏加载优化:异步数据请求不需要等待页面渲染完成,利用 storage API 对异步请求数据进行缓存,二次启动时先利用缓存数据渲染页面,再进行后台更新,为避免白屏,应先展示页面骨架和基础内容,并及时地对需要用户等待的交互操作进行反馈。
  • 正确使用 setData:仅传输页面中发生变化的数据,使用 setData 的特殊 key 实现布局更新,并对连续的 setData 调用进行合并等。
  • 正确使用 onPageScoll:只在必要的时候监听 onPageScoll 事件,避免在 onPageScoll 中执行复杂逻辑,避免在 onPageScoll 中调用 setData 等。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2018-07-12 14:012667
用户头像

发布了 83 篇内容, 共 46.9 次阅读, 收获喜欢 187 次。

关注

评论

发布
暂无评论
发现更多内容

融云聊天室再放大招,服务更完整、集成更便捷

融云 RongCloud

产品 通信 服务 融云 属性

DAPP平台开发NFT商城源码开发

西安链酷科技

DAPP系统开发 NFT开发

苹果再发“黑科技”,合合信息扫描全能王新功能支持“360度立体式建模”

合合技术团队

苹果 科技 合合信息 #人工智能 扫描全能王

GLTF在线编辑器

3D建模设计

gltf/glb模型 GLTF gltf编辑器

更多场景、更多选择,Milvus 新消息队列 NATS 了解一下

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

字节跳动基础架构编排调度团队论文入选云计算领域顶会 SoCC 2023

字节跳动云原生计算

大数据 云原生 编排调度

自然语言处理的卓越未来

百度开发者中心

#人工智能 ChatGPT 文心一言 千帆大模型平台

科兴未来 | 2023年河北国际先进技术创新挑战赛

科兴未来News

深入学习 FastAPI 鉴权:实现可扩展的身份认证机制

Apifox

程序员 后端 鉴权 FastApi ptyhon

你应该知道的几个国产化平台-行云管家

行云管家

信创 国产化 国产化平台

搭建无损网络的关键要素与技术

百度开发者中心

AIGC ChatGPT 千帆大模型平台

百度肖阳:语义检索技术和大语言模型深度结合,重构百度搜索

Geek_2d6073

如何编写优质Prompt的秘诀

百度开发者中心

#人工智能 ChatGPT 文心一言

大模型驱动全面重构,百度联盟的增长飞轮转起来了

Geek_2d6073

【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人

华为云PaaS服务小智

云计算 软件开发 华为云

如何选择美国多IP站群服务器?学习如何统筹管理多个站点

一只扑棱蛾子

站群服务器

Orca LLM:模拟 ChatGPT 的推理过程

3D建模设计

ChatGPT

41 个下载免费 3D 模型的最佳网站

3D建模设计

模型 3D

面向OpenHarmony终端的密码安全关键技术

OpenHarmony开发者

OpenHarmony

即时通讯技术文集(第20期):IM架构设计技术文章(Part3) [共14篇]

JackJiang

网络编程 即时通讯 IM

Be Focused Pro for Mac(个人任务时间管理工具) 2.3.2中文激活版

mac

苹果mac Windows软件 Be Focused Pro 时间管理工具

如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考

NebulaGraph

数据库 UDF

TuGraph Analytics 流图计算之行为路径归因

TuGraphAnalytics

实时计算 图计算 归因分析 行为分析

DAPP系统开发(NFT平台搭建,去中心化应用开发)

西安链酷科技

dapp开发 开发软件 区块链开发DAPP开发

软件测试丨探索基于大模型的人工智能应用与开发,开启智能化时代

测试人

人工智能 程序员 软件测试 公开课 ChatGPT

glTF和GLB有什么区别?

3D建模设计

GLTF glb

AutoCAD 2023 for Mac(cad2023) v2023.2.1注册激活版

mac

苹果mac Windows软件 AutoCAD 2023 三维绘图软件

舞台租赁LED显示屏技术

Dylan

技术 LED显示屏 led显示屏厂家

WavJourney:进入音频故事情节生成世界的旅程

3D建模设计

LLM 大语言模型

8个免费的AI和LLM游乐场

3D建模设计

人工智能 AI LLM

马斯克回应盖茨;谷歌反垄断案开庭;苹果发布 3nm 芯片的 iPhone 15丨RTE开发者日报 Vol.48

声网

微信小程序的下一步:支持NPM、小程序云、可视化编程、支持分包_数据库_覃云_InfoQ精选文章