UNPKG

4.26 kBTypeScriptView Raw
1import { ComponentType } from 'react'
2import { StandardProps, CommonEventFunction } from './common'
3interface PageMetaProps extends StandardProps {
4 /** 下拉背景字体、loading 图的样式,仅支持 dark 和 light
5 * @supported weapp
6 */
7 backgroundTextStyle?: string
8 /** 窗口的背景色,必须为十六进制颜色值
9 * @supported weapp, alipay, harmony
10 */
11 backgroundColor?: string
12 /** 顶部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
13 * @supported weapp, alipay, harmony
14 */
15 backgroundColorTop?: string
16 /** 底部窗口的背景色,必须为十六进制颜色值,仅 iOS 支持
17 * @supported weapp, alipay, harmony
18 */
19 backgroundColorBottom?: string
20 /** 滚动位置,可以使用 px 或者 rpx 为单位,在被设置时,页面会滚动到对应位置
21 * @default ""
22 * @supported weapp, alipay, harmony
23 */
24 scrollTop?: string
25 /** 滚动动画时长
26 * @default 300
27 * @supported weapp, alipay, harmony
28 */
29 scrollDuration?: number
30 /** 页面根节点样式,页面根节点是所有页面节点的祖先节点,相当于 HTML 中的 body 节点
31 * @default ""
32 * @supported weapp, alipay
33 */
34 pageStyle?: string
35 /** 页面的根字体大小,页面中的所有 rem 单位,将使用这个字体大小作为参考值,即 1rem 等于这个字体大小
36 * @default ""
37 * @supported weapp, alipay
38 */
39 rootFontSize?: string
40 /** 页面内容的背景色,用于页面中的空白部分和页面大小变化 resize 动画期间的临时空闲区域
41 * @supported weapp, alipay, harmony
42 */
43 rootBackgroundColor?: string
44 /** 页面 page 的字体大小,可以设置为 system ,表示使用当前用户设置的微信字体大小
45 * @supported weapp, alipay
46 */
47 pageFontSize?: string
48 /** 页面的方向,可为 auto portrait 或 landscape
49 * @supported weapp
50 */
51 pageOrientation?: string
52 /** 页面尺寸变化时会触发 resize 事件
53 * @supported weapp
54 */
55 onResize?: CommonEventFunction<PageMetaProps.onResizeEventDetail>
56 /** 页面滚动时会触发 scroll 事件
57 * @supported weapp, alipay
58 */
59 onScroll?: CommonEventFunction<PageMetaProps.onScrollEventDetail>
60 /** 如果通过改变 scroll-top 属性来使页面滚动,页面滚动结束后会触发 scrolldone 事件
61 * @supported weapp
62 */
63 onScrollDone?: CommonEventFunction
64}
65declare namespace PageMetaProps {
66 interface onResizeEventDetail {
67 /** 设备方向 */
68 deviceOrientation?: 'portrait' | 'landscape'
69 /** 窗口尺寸 */
70 size: resizeType
71 }
72 /** 窗口尺寸类型 */
73 interface resizeType {
74 /** 窗口宽度 */
75 windowWidth: number
76 /** 窗口高度 */
77 windowHeight: number
78 /** 屏幕宽度 */
79 screenWidth?: number
80 /** 屏幕高度 */
81 screenHeight?: number
82 }
83 interface onScrollEventDetail {
84 scrollTop: number
85 }
86}
87/** 页面属性配置节点,用于指定页面的一些属性、监听页面事件。只能是页面内的第一个节点。可以配合 navigation-bar 组件一同使用。
88 * 通过这个节点可以获得类似于调用 Taro.setBackgroundTextStyle Taro.setBackgroundColor 等接口调用的效果。
89 *
90 * :::info
91 * Taro v3.6.19 开始支持
92 * 开发者需要在页面配置里添加:`enablePageMeta: true`
93 * :::
94 *
95 * @supported weapp, alipay, harmony
96 * @example_react
97 * ```tsx
98 * // page.config.ts
99 * export default definePageConfig({ enablePageMeta: true, ... })
100 *
101 * // page.tsx
102 * function Index () {
103 * return (
104 * <View>
105 * <PageMeta
106 * pageStyle={myPageStyle}
107 * onScroll={handleScroll}
108 * >
109 * <NavigationBar title={title} />
110 * </PageMeta>
111 * </View>
112 * )
113 * }
114 * ```
115 * @example_vue
116 * ```html
117 * <!-- page.config.ts -->
118 * <!-- export default definePageConfig({ enablePageMeta: true, ... }) -->
119 *
120 * <!-- page.vue -->
121 * <template>
122 * <page-meta
123 * :page-style="myPageStyle"
124 * `@scroll="handleScroll"
125 * >
126 * <navigation-bar :title="title" />
127 * </page-meta>
128 * </template>
129 * ```
130 * @see https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html
131 */
132declare const PageMeta: ComponentType<PageMetaProps>
133export { PageMeta, PageMetaProps }