微信小程序skyline渲染遇到的问题

1、如何在使用Webview渲染引擎的小程序中单独给页面开启 Skyline 渲染引擎

1)在 app.json 文件下增加配置:
  "lazyCodeLoading": "requiredComponents",
  "componentFramework": "glass-easel",
  "rendererOptions": {
    "skyline": {
      "disableABTest": true,
      "sdkVersionBegin": "3.0.1",
      "sdkVersionEnd": "15.255.255"
    }
  }

2)在页面的xxx.json中配置:

 "navigationStyle": "custom",
 "renderer": "skyline"

设置成功你可以看到开发者工具上有提示当前渲染模式:skyline
在这里插入图片描述

这样就可以在当前页面上使用Skyline 渲染了

2、说说使用skyline 渲染引擎开发小程序页面遇到的问题

1)页面无法滚动,这个官方文档有说明,需要滚动要使用sroll-view 标签,有点坑

然后sroll-view 标签设置overflow-x:auto; 也无效,要实现横向滚动 要再嵌套一个sroll-view

2)页面需要配置"navigationStyle": “custom”

Skyline 不支持原生导航栏,需在页面配置加上 “navigationStyle”: “custom”(使之与 WebView 保持兼容),并自行实现自定义导航栏
在这里插入图片描述

      官方文档链接

3)skyline默认flex 布局 ,横向布局必须要有 flex-direction: row;

这是写代码习惯问题,一般row 的时候,我都不会去写这个属性,这点不一致小坑了一下

4)文字做缩略的时候要使用标签text 或者span 才能成功

推荐使用span 用了text 在flex 布局下,样式会有问题,会默认一个高度,并且改不了,不清楚是不是被我其他代码影响到了,排查了挺久的,后面改成span 问题才解决,有遇到这个问题的朋友分享下解决方案

这里之前搞错了,因为之前我是单行文本给了不换行的属性,可以成功,后面多行就不行了。
这个文字缩略也是馨竹难书,后面找到了官方的解决方法
skyline 下不支持 line-clamp,可以使用 text 组件的 max-lines 结合 overflow 属性使用。
官方链接
在这里插入图片描述

5)skyline 页面 有时候 flex 布局失效 或gap属性失效

app.json 或者 页面的.json 配置 “defaultDisplayBlock”: true
我配置完开发者工具gap属性仍然无效,真机正常,就这样吧~

  "rendererOptions": {
    "skyline": {
      "disableABTest": true,
      "sdkVersionBegin": "3.0.1",
      "sdkVersionEnd": "15.255.255",
      "defaultDisplayBlock": true
    }
  }
6)skyline集成vant

使用van-action-sheet 组件时 弹出窗口中元素点击事件失效,排查是因为加了root-portal,去掉就正常了,不能说坑吧,只能说非常坑

7)skyline无法生成骨架屏

解决方法,先切到webView 渲染 生成骨架屏后再切回skyline

### 微信小程序 Skyline 开发概述 微信小程序 Skyline 提供了一种新的渲染机制,旨在提升应用性能并改善用户体验。通过采用更高效的布局算法和绘制方式,Skyline 能够显著减少页面加载时间和资源消耗[^1]。 对于希望利用这一特性构建高效应用程序的开发者来说,理解如何正确配置和使用 Skyline 至关重要。下面是一些关键知识点: #### 配置 Skyline 渲染模式 要启用 Skyline 渲染引擎,需在 `app.json` 文件中设置 `"renderMode": "skyline"` 参数。此参数告知编译工具应优先考虑使用 Skyline 进行组件渲染[^2]。 ```json { "pages":[], "window":{ ... }, "usingComponents": {}, "renderMode": "skyline" } ``` #### 实现常见交互效果 基于 Skyline 的开发同样遵循标准的小程序编程模型,这意味着大多数现有功能仍然适用。例如,创建轮播图可以通过 WXML 和 WXSS 结合 JavaScript 来完成。由于 Skyline 对动画的支持更加友好,因此这些视觉元素的表现会更为流畅自然[^3]。 ```html <!--index.wxml--> <swiper indicator-dots="{{true}}" autoplay="{{true}}"> <block wx:for="{{images}}" wx:key="unique"> <swiper-item> <image src="{{item.src}}"></image> </swiper-item> </block> </swiper> ``` ```css /* index.wxss */ swiper { height: 300rpx; } swiper image { width: 100%; height: 100%; } ``` #### 解决 URL 格式错误引发的问题 当遇到因路径格式不当而导致的功能异常时,确保所有跳转链接均以正斜杠 `/` 开始是非常重要的。这不仅适用于导航操作,也涵盖了 API 请求中的相对路径定义[^4]。 ```javascript // 正确做法 wx.navigateTo({ url: '/pages/productDetail/index?id=1' }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值