element container源码
<template> <section class="el-container" :class="{ 'is-vertical': isVertical }"> <slot></slot> </section> </template> <script> export default { name: 'ElContainer', componentName: 'ElContainer', props: { // direction 子元素的排列方向 direction: String }, computed: { isVertical() { if (this.direction === 'vertical') { return true; } else if (this.direction === 'horizontal') { return false; } // 如果既不是垂直也不是平行,子元素中有 el-header 或 el-footer 时为 vertical,否则为 horizontal return this.$slots && this.$slots.default ? this.$slots.default.some(vnode => { const tag = vnode.componentOptions && vnode.componentOptions.tag; return tag === 'el-header' || tag === 'el-footer'; }) : false; } } }; </script>