@wechat-miniprogram/skyline-overview
Skyline 渲染引擎概览与迁移技能。了解 Skyline 架构、性能优势、功能特性、迁移指南和最佳实践时使用此技能。适用于初次接触 Skyline、评估迁移成本、或需要了解整体框架的场景。
No skills found in this collection.
SKILL.md
| name | skyline-overview |
| description | Skyline 渲染引擎概览与迁移技能。了解 Skyline 架构、性能优势、功能特性、迁移指南和最佳实践时使用此技能。适用于初次接触 Skyline、评估迁移成本、或需要了解整体框架的场景。 |
Skyline 渲染引擎概览
适用场景
- 初次了解 Skyline 渲染引擎
- 评估是否迁移到 Skyline
- 查看 Skyline 版本更新日志
- 了解与 WebView 的差异和兼容性
- 获取迁移步骤和最佳实践
核心概念
Skyline 是什么?
Skyline 是微信小程序的新一代渲染引擎,相比 WebView 有以下优势:
| 对比项 | WebView | Skyline |
|---|---|---|
| 渲染线程 | 与 JS 逻辑同线程 | 独立渲染线程 |
| 页面内存 | 每页一个 WebView | 共享渲染实例 |
| 首屏性能 | 较慢 | 快 66%+ |
| 光栅化 | 异步分块 | 同步(无白屏) |
| 页面栈限制 | 最多 10 层 | 无限制(连续 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
}
⚠️ MUST: 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
Loading...
Select a file to preview
Analyzing security...
Checking scan reports and verification data.
Bill of Materials
Everything this skill can do — files, network, commands, and more.
No demos yet. To add one, ask your AI agent: "Submit a demo for @wechat-miniprogram/skyline-overview" — or upload via the API.
To add a demo, ask your AI agent: "Submit a demo for @wechat-miniprogram/skyline-overview"
No eval data yet. Eval results are published via the SkillSafe API.