# 容器篇

# 设计细节

容器的功能比较简单,主要将页面切分成头部header侧边栏aside主要区域main底部footer,这几个部分都放在容器container里。

在没有侧边栏的时候,container里的排列方向是column,当有侧边栏时,container里的排列方向就切换成row

<script>
export default {
  name: "YvContainer",
  data() {
    return {
      containerClass: {
        hasAside: false
      }
    }
  },
  mounted() {
    this.$children.some(child => {
      if (child.$options.name === 'YvAside') {
        this.containerClass.hasAside = true
        return true
      }
    })
  }
}
</script>

通过遍历判断是否存在aside组件,存在aside的时候将hasAside设置为true,同时给container加上了hasAside的类,样式为flex-direction: row

# vuepress配置

docs/.vuepress/components文件夹下增加container-demo的vue文件,内容就是我们要展示的container示例,然后在docs/components文件夹下增加container的md文件,内容就是放置整个container组件说明。