2023年微信小程序组件 native-component
使用微信小程序原生组件开发应用的限制及解决方案
微信小程序中的原生组件是由客户端创建的,在使用时需要注意一些限制。以下是原生组件的使用限制和相应的解决方案:
1. 原生组件层级最高
无论设置 z-index 为多少,其他组件都无法盖在原生组件上。后插入的原生组件可以覆盖之前的原生组件。
解决方案:cover-view和cover-image组件
为了解决原生组件层级的问题,小程序提供了 cover-view 和 cover-image 组件,这两个组件也是原生组件,但是使用限制与其他原生组件有所不同。他们可以覆盖部分原生组件。
2. 不能在picker-view以及scroll-view, swiper, movable-view中使用
基础库版本2.4.4以下的原生组件不支持在 scroll-view、swiper、movable-view 中使用。
解决方案:升级基础库版本
可以通过升级基础库版本来解决该问题。
3. 部分CSS样式无法应用于原生组件
无法对原生组件设置 CSS 动画,不能定义原生组件为 position: fixed,在父级节点使用 overflow: hidden 时也无法裁剪原生组件的显示区域。
解决方案:使用自定义组件代替原生组件
可以将原生组件替换为自定义组件来实现所需的效果,或者通过JS控制达到类似的效果。
4. 原生组件事件监听的写法不同于其他组件
原生组件的事件监听不能使用 bind:eventname 的写法,只支持 bindeventname。原生组件也不支持 catch 和 capture 的事件绑定方式。
解决方案:注意语法规则
需要按照 bindeventname 的规则来书写事件监听函数。
5. 原生组件在调试面板上的遮挡问题
原生组件容易遮挡vConsole弹出的调试面板。
解决方案:在真机上进行调试
建议开发者在使用到原生组件时尽量在真机上进行调试,以获得更准确的效果。
6. 一些原生组件不支持同层渲染
当前video, map, live-player, live-pusher, canvas(2d) 组件不支持同层渲染。
解决方案:使用cover-view和cover-image组件、自定义组件或者JS实现同层渲染效果
可以将原生组件替换为自定义组件并使用cover-view和cover-image组件、或通过JS控制实现同层渲染的效果。
7. 原生组件之间的相对层级问题
在 v2.7.0 及以上版本中,小程序支持在样式中声明 z-index 来指定原生组件的层级。该 z-index 仅调整原生组件之间的层级顺序,其层级仍高于其他非原生组件。
-
B2B2C多用户商城系统支持企业自营与商户入驻模式共存 会员一站式精细化营销工具 多用户分销,带来爆发式增长
系统支持平台自营+供应商店铺共存的经营模式(类天猫&京东模式),帮助企业打造生态级商业平台为目的的电子商务系统。
免费试用系统 -
B2B2B电商交易系统优化供应链协作 授信及账期支付 商品按照数量阶梯设价
全渠道订货/采购及经销商管理数字化系统,实现供应链整合和交易便捷化。
免费试用系统 -
S2B2B电商交易系统供销一体化,提高市场集中度 集团管控一体化,有效实现供需匹配 移动应用一体化,提高运营综合效率
上下游资源整合数字化解决方案,赋能产业供应链,构建产业互联网生态体系。
免费试用系统
