原生組件
小程序中的部分組件是由客戶端創建的原生組件,這些組件有:
camera
canvas
input
(僅在focus時表現為原生組件)live-player
live-pusher
map
textarea
video
原生組件的使用限制
由於原生組件脫離在 WebView 渲染流程外,因此在使用時有以下限制:
- 原生組件的層級是最高的,所以頁面中的其他組件無論設置
z-index
為多少,都無法蓋在原生組件上。- 后插入的原生組件可以覆蓋之前的原生組件。
- 原生組件還無法在
<picker-view>
中使用。- 基礎庫 2.4.4 以下版本,原生組件不支持在
<scroll-view>
、<swiper>
、<movable-view>
中使用。
- 基礎庫 2.4.4 以下版本,原生組件不支持在
- 部分CSS樣式無法應用於原生組件,例如:
- 無法對原生組件設置 CSS 動畫
- 無法定義原生組件為
position: fixed
- 不能在父級節點使用
overflow: hidden
來裁剪原生組件的顯示區域
- 原生組件的事件監聽不能使用
bind:eventname
的寫法,只支持bindeventname
。原生組件也不支持 catch 和 capture 的事件綁定方式。 - 原生組件會遮擋 vConsole 彈出的調試面板。
在工具上,原生組件是用web組件模擬的,因此很多情況並不能很好的還原真機的表現,建議開發者在使用到原生組件時盡量在真機上進行調試。
cover-view 與 cover-image
為了解決原生組件層級最高的限制。小程序專門提供了 cover-view
和 cover-image
組件,可以覆蓋在部分原生組件上面。這兩個組件也是原生組件,但是使用限制與其他原生組件有所不同。