SuperAPI AI 工具集

skyline-overview

前端与建站

查看项目

更新于 10-16 09:15

技能介绍

用途

本技能用于了解微信小程序新一代渲染引擎 Skyline,提供从概览到迁移的完整指引。适用于初次接触 Skyline、评估是否迁移、查看版本更新日志、了解与 WebView 的差异和兼容性,以及获取迁移步骤和最佳实践的场景。

核心概念

Skyline 是微信小程序的新一代渲染引擎。相比 WebView 的对比信息如下:

  • 渲染线程:WebView 与 JS 逻辑同线程;Skyline 为独立渲染线程。
  • 页面内存:WebView 每页一个 WebView;Skyline 共享渲染实例。
  • 首屏性能:WebView 较慢;Skyline 快 66%+。
  • 光栅化:WebView 异步分块;Skyline 同步(无白屏)。
  • 页面栈限制:WebView 最多 10 层;Skyline 无限制(连续 Skyline 页面)。

环境要求

  • Android:微信 8.0.40+,基础库 3.0.2+
  • iOS:微信 8.0.40+,基础库 3.0.2+
  • HarmonyOS:微信 1.0.10+,基础库 3.11.3+
  • 开发者工具:Stable 1.06.2307260+

快速开始配置

必需配置(app.json):

{ "renderer": "skyline", "lazyCodeLoading": "requiredComponents", "componentFramework": "glass-easel", "rendererOptions": { "skyline": { "defaultDisplayBlock": true, "defaultContentBox": true, "tagNameStyleIsolation": "legacy", "enableScrollViewAutoSize": true, "keyframeStyleIsolation": "legacy" } } }

页面配置(page.json):

{ "navigationStyle": "custom", "disableScroll": true }

注意:Skyline 不支持原生导航栏,必须设置 navigationStyle: custom 并自行实现导航栏。

文档索引

路径相对于 references/:

  • 了解 Skyline 架构和优势:introduction/overview.md
  • 查看支持的特性:introduction/features.md
  • 查看性能对比数据:performance/comparison.md
  • 开始迁移项目:migration/getting-started.md
  • 处理兼容性问题:migration/compatibility.md
  • 发布上线指南:migration/release.md
  • 查看更新日志:changelog/changelog.md
  • 检测 Skyline 支持:api/getSkylineInfo.md
  • 预加载 Skyline 环境:api/preloadSkylineView.md

强制规则

MUST(必须遵守):

  • 配置完整:app.json 必须包含 renderer、lazyCodeLoading、componentFramework 三项
  • 自定义导航:所有 Skyline 页面必须设置 navigationStyle: custom
  • 局部滚动:使用 scroll-view 实现滚动,禁止依赖全局滚动
  • 文本组件:纯文本必须用 <text> 组件包裹
  • 预加载:跳转 Skyline 页面前调用 wx.preloadSkylineView()

NEVER(禁止行为):

  • NEVER 使用原生导航栏配置(Skyline 不支持)
  • NEVER 依赖 Page.onPageScroll 事件(使用 scroll-view 的滚动事件替代)
  • NEVER 在 Skyline 页面使用 web-view 组件
  • NEVER 假设所有 CSS 属性都支持(参考 WXSS 支持文档)

迁移检查清单

配置检查:

  • app.json 添加 renderer: "skyline"
  • app.json 添加 lazyCodeLoading: "requiredComponents"
  • app.json 添加 componentFramework: "glass-easel"
  • app.json 添加 rendererOptions.skyline 配置
  • 页面 json 添加 navigationStyle: "custom"
  • 页面 json 添加 disableScroll: true

代码检查:

  • 实现自定义导航栏组件
  • 全局滚动改为 scroll-view 局部滚动
  • 纯文本用 <text> 包裹
  • 检查 WXSS 属性支持情况
  • 测试原生组件(map/canvas/video)显示

发布检查:

  • 配置 We 分析 AB 实验(灰度发布)
  • 测试 WebView 降级兼容性
  • 低版本微信表现正常

判断当前渲染引擎

JS 方式:

Page({ onLoad() { // 页面/组件实例上有 renderer 属性 console.log(this.renderer) // 'skyline' 或 'webview' } })

API 方式:

// 异步方式 wx.getSkylineInfo({ success(res) { console.log(res.isSupported) // 是否支持 Skyline console.log(res.version) // Skyline 版本号 } })

// 同步方式 const info = wx.getSkylineInfoSync() console.log(info.isSupported, info.version)

性能优化提示

预加载 Skyline 环境:

// 在可能跳转到 Skyline 页面的页面中 Page({ onShow() { // 延迟调用避免阻塞当前页面 setTimeout(() => { wx.preloadSkylineView() }, 500) } })

长列表优化:列表项必须作为 scroll-view 直接子节点。

<scroll-view type="list" scroll-y> <view wx:for="{{list}}" wx:key="id">{{item.name}}</view> </scroll-view>

启用样式共享:

<scroll-view type="list" scroll-y> <view wx:for="{{list}}" wx:key="id" list-item>{{item.name}}</view> </scroll-view>

相关技能

  • 配置详解:skyline-config(JSON 配置项完整说明)
  • 样式开发:skyline-wxss(WXSS 支持与差异)
  • 组件开发:skyline-components(组件使用指南)
  • 动画开发:skyline-worklet(Worklet 动画系统)
  • 路由开发:skyline-route(自定义路由和转场)

References 目录结构

references/ ├── api/ │ ├── getSkylineInfo.md │ └── preloadSkylineView.md ├── changelog/ │ └── changelog.md ├── introduction/ │ ├── component-support.md │ ├── features.md │ └── overview.md ├── migration/ │ ├── best-practice.md │ ├── compatibility.md │ ├── getting-started.md │ └── release.md └── performance/ └── comparison.md

限制

Skyline 不支持原生导航栏;不支持在页面中使用 web-view 组件;不应依赖 Page.onPageScroll 事件;不能假设所有 CSS 属性均受支持,需参考 WXSS 支持文档。其余未在资料中说明的限制暂未提供。