@tarojs/components
Version:
134 lines (133 loc) • 4.26 kB
TypeScript
import { ComponentType } from 'react'
import { StandardProps, CommonEventFunction } from './common'
interface PageMetaProps extends StandardProps {
/** 下拉背景字体、loading 图的样式,仅支持 dark 和 light
* @supported weapp
*/
backgroundTextStyle?: string
/** 窗口的背景色,必须为十六进制颜色值
* @supported weapp, alipay, harmony
*/
backgroundColor?: string
/** 顶部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
* @supported weapp, alipay, harmony
*/
backgroundColorTop?: string
/** 底部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
* @supported weapp, alipay, harmony
*/
backgroundColorBottom?: string
/** 滚动位置,可以使用 px 或者 rpx 为单位,在被设置时,页面会滚动到对应位置
* @default ""
* @supported weapp, alipay, harmony
*/
scrollTop?: string
/** 滚动动画时长
* @default 300
* @supported weapp, alipay, harmony
*/
scrollDuration?: number
/** 页面根节点样式,页面根节点是所有页面节点的祖先节点,相当于 HTML 中的 body 节点
* @default ""
* @supported weapp, alipay
*/
pageStyle?: string
/** 页面的根字体大小,页面中的所有 rem 单位,将使用这个字体大小作为参考值,即 1rem 等于这个字体大小
* @default ""
* @supported weapp, alipay
*/
rootFontSize?: string
/** 页面内容的背景色,用于页面中的空白部分和页面大小变化 resize 动画期间的临时空闲区域
* @supported weapp, alipay, harmony
*/
rootBackgroundColor?: string
/** 页面 page 的字体大小,可以设置为 system ,表示使用当前用户设置的微信字体大小
* @supported weapp, alipay
*/
pageFontSize?: string
/** 页面的方向,可为 auto portrait 或 landscape
* @supported weapp
*/
pageOrientation?: string
/** 页面尺寸变化时会触发 resize 事件
* @supported weapp
*/
onResize?: CommonEventFunction<PageMetaProps.onResizeEventDetail>
/** 页面滚动时会触发 scroll 事件
* @supported weapp, alipay
*/
onScroll?: CommonEventFunction<PageMetaProps.onScrollEventDetail>
/** 如果通过改变 scroll-top 属性来使页面滚动,页面滚动结束后会触发 scrolldone 事件
* @supported weapp
*/
onScrollDone?: CommonEventFunction
}
declare namespace PageMetaProps {
interface onResizeEventDetail {
/** 设备方向 */
deviceOrientation?: 'portrait' | 'landscape'
/** 窗口尺寸 */
size: resizeType
}
/** 窗口尺寸类型 */
interface resizeType {
/** 窗口宽度 */
windowWidth: number
/** 窗口高度 */
windowHeight: number
/** 屏幕宽度 */
screenWidth?: number
/** 屏幕高度 */
screenHeight?: number
}
interface onScrollEventDetail {
scrollTop: number
}
}
/** 页面属性配置节点,用于指定页面的一些属性、监听页面事件。只能是页面内的第一个节点。可以配合 navigation-bar 组件一同使用。
* 通过这个节点可以获得类似于调用 Taro.setBackgroundTextStyle Taro.setBackgroundColor 等接口调用的效果。
*
* :::info
* Taro v3.6.19 开始支持
* 开发者需要在页面配置里添加:`enablePageMeta: true`
* :::
*
* @supported weapp, alipay, harmony
* @example_react
* ```tsx
* // page.config.ts
* export default definePageConfig({ enablePageMeta: true, ... })
*
* // page.tsx
* function Index () {
* return (
* <View>
* <PageMeta
* pageStyle={myPageStyle}
* onScroll={handleScroll}
* >
* <NavigationBar title={title} />
* </PageMeta>
* </View>
* )
* }
* ```
* @example_vue
* ```html
* <!-- page.config.ts -->
* <!-- export default definePageConfig({ enablePageMeta: true, ... }) -->
*
* <!-- page.vue -->
* <template>
* <page-meta
* :page-style="myPageStyle"
* `@scroll="handleScroll"
* >
* <navigation-bar :title="title" />
* </page-meta>
* </template>
* ```
* @see https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html
*/
declare const PageMeta: ComponentType<PageMetaProps>
export { PageMeta, PageMetaProps }