VUE-Element组件(一)Layout布局

一、el-row和el-col可以很好的控制块级、行级布局,建议:在div中嵌套el-row。el-row和div

类似,div的很多css属性在el-row中都可以使用,el-col则不一定。

二、el-col之间的间距问题:

1、el-col之间设置间距有两种方法:

 1)使用el-row自带的gutter:gutter生成的间距如果长度不够会外扩,如:

 <el-row>
                  <el-col :span="6" class="col">无间距第一个</el-col>
                  <el-col :span="6" class="col">无间距第二个</el-col>
                  <el-col :span="6" class="col">无间距第三个</el-col>
                  <el-col :span="6" class="col">无间距第四个</el-col>
                </el-row>
                <el-row :gutter="20">
                  <el-col :span="6" class="col">第一个</el-col>
                  <el-col :span="6" class="col">第二个</el-col>
                  <el-col :span="6" class="col">第三个</el-col>
                  <el-col :span="6" class="col">第四个</el-col>
                </el-row>



 .col {
            border: 1px solid black;
          }

 2)css设置边距:而css生成的间距长度不够会换行,如:

 <el-row>
                  <el-col :span="6" class="col">无间距第一个</el-col>
                  <el-col :span="6" class="col">无间距第二个</el-col>
                  <el-col :span="6" class="col">无间距第三个</el-col>
                  <el-col :span="6" class="col">无间距第四个</el-col>
                </el-row>
               
                <el-row>
                  <el-col :span="6" class="col" style="margin-left:20px">第一个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第二个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第三个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第四个</el-col>
                </el-row>


 .col {
            border: 1px solid black;
          }

2、间距对齐方式:将 type 属性赋值为 'flex',可以启用 flex 布局,并可通过 justify 属性来指定 start, center, end, space-between, space-around 其中的值来定义子元素的排版方式。

下面以space-between对齐方式为例:

1)gutter的间距:仍是超出:

 <el-row>
                  <el-col :span="6" class="col">无间距第一个</el-col>
                  <el-col :span="6" class="col">无间距第二个</el-col>
                  <el-col :span="6" class="col">无间距第三个</el-col>
                  <el-col :span="6" class="col">无间距第四个</el-col>
                </el-row>
                <el-row :gutter="20" type="flex" justify="space-between">
                  <el-col :span="6" class="col">第一个</el-col>
                  <el-col :span="6" class="col">第二个</el-col>
                  <el-col :span="6" class="col">第三个</el-col>
                  <el-col :span="6" class="col">第四个</el-col>
                </el-row>

2)css的间距:不换行了:

 <el-row type="flex" justify="space-between">
                  <el-col :span="6" class="col" style="margin-left:20px">第一个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第二个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第三个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第四个</el-col>
                </el-row>

再把第一个col的左间距去掉

 <el-row type="flex" justify="space-between">
                  <el-col :span="6" class="col">第一个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第二个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第三个</el-col>
                  <el-col :span="6" class="col" style="margin-left:20px">第四个</el-col>
                </el-row>

### Vue-Element-Admin 中 Layout 布局的实现与用法 #### 1. 默认布局结构 `vue-element-admin` 提供了种灵活的方式来管理不同页面的布局。默认情况下,项目中存在多个预定义的布局组件来满足不同的需求。这些布局通常位于 `src/layout/BasicLayout.vue` 或其他自定义路径下。 对于基本布局而言,其主要功能在于提供统的顶部导航栏、侧边菜单以及主要内容区域的支持[^1]: ```html <template> <div class="app-wrapper"> <!-- 左侧菜单 --> <sidebar /> <!-- 右侧主体部分 --> <div class="main-container"> <navbar /> <!-- 主要内容区 --> <app-main /> <!-- 设置面板 (可选) --> <setting-panel /> </div> </div> </template> <script setup lang="ts"> import Sidebar from './components/Sidebar/index.vue' import Navbar from './components/Navbar/index.vue' import AppMain from './components/AppMain/index.vue' import SettingPanel from './components/Settings/index.vue' </script> ``` 此模板展示了如何通过组合子组件创建个完整的页面框架,并且可以很容易地在此基础上扩展更多特性。 #### 2. 自定义布局的应用场景 除了上述提到的基础布局外,有时开发者可能希望针对特定类型的页面设计独特的界面样式。这时就可以利用自定义布局的功能。例如,在某些特殊场景下的登录页或注册页并不需要显示常规的左侧菜单和头部工具条,因此可以通过创建新的布局文件并将其应用于相应的路由配置上来解决问题[^3]。 假设现在有个名为 `UserLayout` 的新布局,则可以在 `router/index.js` 文件内像下面这样指定它作为某个视图的具体容器: ```javascript // router/index.js const routes = [ { path: '/login', component: () => import('@/views/Login'), meta: { title: 'Login', hidden: true }, props: false, children: [], redirect: '', alwaysShow: false, name: 'Login', layout: 'UserLayout' // 使用自定义布局 } ]; ``` 同时还需要确保在入口处正确导入这个额外的布局模块: ```javascript // src/layouts/index.js export { default as BasicLayout } from '@/layout'; export { default as UserLayout } from './UserLayout'; // 导出自定义布局 ``` 最后步是在全局路由器实例化之前完成所有必要的设置工作,以便能够识别到新增加的布局选项。 #### 3. 动态加载与按需引入 为了提高性能表现,推荐采用懒加载的方式异步获取各个页面所需的资源。这不仅有助于减少初次渲染时的数据量,还能加快应用程序的整体响应速度。当涉及到复杂的多级嵌套路由时尤为明显——只需按照实际访问情况逐步加载对应的内容即可[^2]。 综上所述,通过对现有基础架构的理解加上合理的定制化调整,便能够在保持高效的同时构建出既美观又实用的企业级Web应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值