Skip to content

Root 根节点 ​

页面级根容器,用于统一 Lucky UI 的主题作用域、品牌色变量、安全区变量与全局反馈宿主。

基础用法 ​

推荐在主页面或业务根布局包裹内容。使用 LkRoot 后,Toast 宿主会自动挂载,不需要再额外写 <lk-toast-manager />。

vue
<template>
  <lk-root>
    <page-layout />
  </lk-root>
</template>

局部主题 ​

theme="auto" 会跟随 Lucky UI 当前主题;传入 light 或 dark 时,仅影响当前根节点内部。

vue
<template>
  <lk-root theme="dark" brand-color="#13c2c2">
    <view class="page">
      <lk-button @click="showToast">显示 Toast</lk-button>
    </view>
  </lk-root>
</template>

<script setup lang="ts">
import { toastStore } from '@/uni_modules/lucky-ui'

function showToast() {
  toastStore.show('Root 已承载 Toast')
}
</script>

关闭内置 Toast ​

如果页面仍使用低层的 <lk-toast-manager />,应关闭 Root 的内置宿主,避免重复挂载。

vue
<template>
  <lk-root :toast="false">
    <page-layout />
    <lk-toast-manager />
  </lk-root>
</template>

高质量根节点标准 ​

一个可长期维护的根节点应具备这些能力:

能力说明
稳定单根契约对外只暴露明确根容器和默认插槽,不制造额外布局副作用
清晰作用域主题、品牌色、CSS 变量只影响当前 Root 内部
跨端安全区H5 使用 env(safe-area-inset-*),小程序/App 优先使用运行时安全区
全局宿主Toast 这类全局反馈集中挂载,避免页面重复声明
层级边界不随意抬高根节点 z-index,浮层仍遵循组件自身层级体系
可关闭能力全局宿主、全高、安全区等行为均可通过 prop 显式关闭
扩展入口为后续 Loading、Notify、浮层宿主保留同一个页面级入口
可预测默认值不隐式锁滚动,不接管业务路由,不依赖 DOM API
类型完整导出 props 类型和全局组件声明,IDE 能正确提示

实用场景 ​

场景建议
应用主页面用 LkRoot 包裹主布局,统一主题、品牌变量与 Toast 宿主
业务根布局在登录页、工作台、设置页等独立布局入口使用
局部主题隔离活动页、预览区、嵌入模块可传 theme 和 brandColor
自定义导航框架搭配 Navbar、Tabbar、TabbarContainer,复用全高与安全区变量
后续全局能力为 Loading、Notify、浮层宿主等能力预留稳定入口

API ​

Props ​

参数说明类型可选值默认值
theme主题模式,auto 跟随当前 Lucky UI 主题stringauto / light / darkauto
brandColor局部品牌色,仅影响当前根节点内部string—''
localeLucky UI 组件语言,传入后调用 Locale.usestring—''
background根节点背景stringpage / container / transparentpage
fullHeight是否启用页面级最小高度boolean—true
safeArea是否暴露安全区 CSS 变量boolean—true
toast是否内置 Toast 宿主boolean—true
customClass自定义类名string / object / array—''
customStyle自定义样式string / object—''

Slots ​

插槽名说明作用域参数
default页面内容—

CSS 变量 ​

CSS 变量说明
--lk-root-safe-area-top当前根节点顶部安全区
--lk-root-safe-area-right当前根节点右侧安全区
--lk-root-safe-area-bottom当前根节点底部安全区
--lk-root-safe-area-left当前根节点左侧安全区
--lk-safe-area-topRoot 对外提供的顶部安全区别名
--lk-safe-area-bottomRoot 对外提供的底部安全区别名

注意事项 ​

TIP

Root 首版不会接管 Popup、Modal、Overlay 的渲染宿主,现有浮层组件行为保持不变。

WARNING

同一页面只保留一个 Toast 宿主。使用 LkRoot 默认配置时,不要再手写 <lk-toast-manager />。

基于 MIT 协议开源

Root 根节点

正在连接预览服务...

请先运行 pnpm run dev:h5