vue3 + ts: layout布局

一、理解:layout

layout,语义:布局,设计,结合前端vue项目,我理解为这样的定义:页面级别的组件,框架级别的组件,基础布局组件,基础设计

关键词:组件、布局、可复用的、工程化、脚手架

后台管理系统layout组件一般分为:头部组件(navbar)、页签组件(tagsview)、左侧菜单(sidebar)、内容渲染区域(AppMain)

二、vue3 + ts 项目使用layout

2.1、项目目录

2.2、layout文件

<!-- src/layouts/default/index.vue -->
<template>
    <el-container>
      <el-aside width="200px">
        Aside
      </el-aside>
      <el-container>
        <el-header>Header</el-header>
        <el-main>
          <!-- 子路由出口 -->
          <router-view />
        </el-main>
      </el-container>
    </el-container>
  </template>
  
  <script setup lang="ts"></script>
  
  <style scoped lang="less">
  .el-container {
    height: 100vh;
  }
  .el-header {
    background-color: #B3C0D1;
    color: #ff0000;
  }
  .el-aside {
    width: auto;
    background-color: #304156;
    color: #ff0000;
  }
  .el-main {
    background-color: #E9EEF3;
  }
  </style>

 2.3、配置路由

// 引入创建路由管理器 引入创建路由模式 history模式
import { createRouter, createWebHistory } from 'vue-router'
import layout_default from '@/layouts/default/index.vue'
// 引入路由各页面配置
const routes=[
  {
    path: '/',
    redirect: '/like'
  },
  {
    path: '/layout',
    component: layout_default,
    name: 'layout',
    children: [
      {
        path: 'default',
        component: ()=>import('../views/indicators/default.vue'),
        name: 'default'
      }
    ]
  }
]
// 创建路由管理器 模式和路由
const router=createRouter({
  history: createWebHistory(),
  routes
})

export default router

2.4、访问 path + children.path(http://localhost:3020/layout/default

2.5、同理可以开发很多符合业务需求的组件满足页面级别的组件使用,提高开发效率

三、欢迎交流指正,关注我,一起学习。

参考链接:

Vue3+Vite+Ts 项目实战 04 搭建 Layout 布局_皮蛋很白的博客-CSDN博客_vue3使用layout

百度安全验证

为了实现vue3+ element plus+ts的门户网站自适应布局,可以按照以下步骤进行操作: 1. 安装vue-cli并创建项目 ```shell npm install -g @vue/cli vue create vue3-elementplus-mock-echarts ``` 2. 安装element-plus和sass ```shell npm install element-plus sass sass-loader ``` 3. 在main.ts中引入element-plus和sass ```typescript import { createApp } from 'vue' import App from './App.vue' import router from './router' import store from './store' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' import './assets/scss/index.scss' createApp(App).use(store).use(router).use(ElementPlus).mount('#app') ``` 4. 在App.vue中使用element-plus的Layout组件进行布局 ```vue <template> <div class="app-container"> <el-container> <el-header>Header</el-header> <el-container> <el-aside>Aside</el-aside> <el-main>Main</el-main> </el-container> <el-footer>Footer</el-footer> </el-container> </div> </template> <script lang="ts"> import { defineComponent } from 'vue' export default defineComponent({ name: 'App', }) </script> <style lang="scss" scoped> .app-container { height: 100%; display: flex; flex-direction: column; .el-container { flex: 1; height: 100%; .el-header { height: 60px; } .el-aside { width: 200px; } .el-main { flex: 1; } .el-footer { height: 60px; } } } </style> ``` 5. 在index.html中设置meta标签实现自适应布局 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> <title>vue3-elementplus-mock-echarts</title> </head> <body> <div id="app"></div> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值