微信小程序組件 native-component

2020-07-24 15:44 更新

native-component

原生組件

小程序中的部分組件是由客戶端創(chuàng)建的原生組件,這些組件有:

  • camera
  • canvas
  • input(僅在focus時(shí)表現(xiàn)為原生組件)
  • live-player
  • live-pusher
  • map
  • textarea
  • video

原生組件的使用限制

由于原生組件脫離在 WebView 渲染流程外,因此在使用時(shí)有以下限制:

  • 原生組件的層級(jí)是最高的,所以頁面中的其他組件無論設(shè)置 z-index 為多少,都無法蓋在原生組件上。后插入的原生組件可以覆蓋之前的原生組件。
  • 原生組件還無法在 picker-view 中使用。基礎(chǔ)庫 2.4.4 以下版本,原生組件不支持在 scroll-view、swiper、movable-view 中使用。
  • 部分CSS樣式無法應(yīng)用于原生組件,例如:無法對(duì)原生組件設(shè)置 CSS 動(dòng)畫無法定義原生組件為 position: fixed不能在父級(jí)節(jié)點(diǎn)使用 overflow: hidden 來裁剪原生組件的顯示區(qū)域
  • 原生組件的事件監(jiān)聽不能使用 bind:eventname 的寫法,只支持 bindeventname。原生組件也不支持 catch 和 capture 的事件綁定方式。
  • 原生組件會(huì)遮擋 vConsole 彈出的調(diào)試面板。 在工具上,原生組件是用web組件模擬的,因此很多情況并不能很好的還原真機(jī)的表現(xiàn),建議開發(fā)者在使用到原生組件時(shí)盡量在真機(jī)上進(jìn)行調(diào)試。*

cover-view 與 cover-image

為了解決原生組件層級(jí)最高的限制。小程序?qū)iT提供了 cover-view 和 cover-image 組件,可以覆蓋在部分原生組件上面。這兩個(gè)組件也是原生組件,但是使用限制與其他原生組件有所不同。

原生組件同層渲染

同層渲染是為了解決原生組件的層級(jí)問題,在支持同層渲染后,原生組件與其它組件可以隨意疊加,有關(guān)層級(jí)的限制將不再存在。但需要注意的是,組件內(nèi)部仍由原生渲染,樣式一般還是對(duì)原生組件內(nèi)部無效。當(dāng)前 video, map, live-player, live-pusher, canvas(2d) 組件已支持同層渲染。

原生組件相對(duì)層級(jí)

為了可以調(diào)整原生組件之間的相對(duì)層級(jí)位置,小程序在 v2.7.0 及以上版本支持在樣式中聲明 z-index 來指定原生組件的層級(jí)。該 z-index 僅調(diào)整原生組件之間的層級(jí)順序,其層級(jí)仍高于其他非原生組件。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)