Layout Page

我们将讨论在 QLayout 中封装页面。 如果尚未准备好,请先阅读 QLayout 文档页面。

QPageContainer API

Loading QPageContainer API...

QPage API

Loading QPage API...

布局生成器

点击下面的按钮来搭建您的布局。

布局生成器

用法

QPage 必须由 QPageContainer 封装,而 QPageContainer 又必须是 QLayout 的子节点。

<q-layout>
  ...
  <q-page-container>
    <q-page>
      <!-- 页面内容 -->
    </q-page>
  </q-page-container>
  ...
</q-layout>

通常情况下,QPageContainer 是 Layout 模板的一部分(它只包含一个<router-view/>子元素),其内容进入/src/pages 下的单独 vue 文件中。 如果尚未了解,请阅读[使用布局和页面进行路由]](/layout/routing-with-layouts-and-pages)。

<!-- 布局 vue 文件: -->
<q-layout>
  ...
  <q-page-container>
    <router-view />
  </q-page-container>
  ...
</q-layout>

<!-- 页面 vue 文件: -->
<q-page padding>
  <!-- 页面内容 -->
</q-page>

示例

TIP

由于 QPageContainer 和 QPage 需要布局,并且默认情况下 QLayout 会管理整个窗口,因此出于演示目的,我们将使用容器化的 QLayouts。 但是请记住,这不代表您也需要将容器化的 QLayouts 用于 QPageContainer 和 QPage




Style-

QPage 需要 QLayout,因为 QLayout 控制页面的所有偏移量,并根据其 view 属性配置计算页眉/页脚/抽屉使用的空间。默认情况下,您的 QPage 组件上将设置一个 min-height CSS 属性,以确保内容始终填充屏幕,即使内容只有几行也是如此。

如果您想调整甚至删除此属性,可以使用 style-fn 属性来实现:

<template>
  <q-page :style-fn="myTweak">...</q-page>
</template>

<script>
export default {
  // ...
  methods: {
    myTweak (offset) {
      // "offset" 是一个数字(像素),
      //它表示基于 QLayout "view" 属性配置的
      //屏幕上页眉+页脚的总高度

      // 这实际上是 Quasar 中默认的 style-fn 的功能如下
      return { minHeight: offset ? `calc(100vh - ${offset}px)` : '100vh' }
    }
  }
}
</script>