• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Vue3的页面布局设计入门

武飞扬头像
wx64de1ce4721f0
帮助3

背景

上周,组里入职了一个应届生,今天他突然问了我一个问题,就是关于页面的布局如何设计,刚好今天晚上有空我们就一起来简单学习下。

内容介绍

首先,我们使用vue3来实现页面布局,布局是顶左右分布的,顶部为banner,左侧为导航栏,右侧为数据区域。而且左侧导航具备折叠功能,数据区使用一个axios异步table来演示。

前提

已经安装了vue3和vue cli。

Demo

<template>
  <div id="app">
    <!-- 顶部banner -->
    <header>
      <h1>欢迎使用Vue 3页面布局</h1>
    </header>

    <!-- 左侧导航 -->
    <aside :class="{ collapsed: isCollapsed }">
      <nav>
        <ul>
          <li>
            <a href="https://blog.51cto.com/u_16229717/7127698">菜单项1</a>
            <ul>
              <li><a href="https://blog.51cto.com/u_16229717/7127698">子菜单项1</a></li>
              <li><a href="https://blog.51cto.com/u_16229717/7127698">子菜单项2</a></li>
            </ul>
          </li>
          <li>
            <a href="https://blog.51cto.com/u_16229717/7127698">菜单项2</a>
            <ul>
              <li><a href="https://blog.51cto.com/u_16229717/7127698">子菜单项3</a></li>
              <li><a href="https://blog.51cto.com/u_16229717/7127698">子菜单项4</a></li>
            </ul>
          </li>
        </ul>
      </nav>
      <button @click="toggleCollapse">折叠导航</button>
    </aside>

    <!-- 表格 -->
    <main>
      <table>
        <thead>
          <tr>
            <th>ID</th>
            <th>名称</th>
            <th>描述</th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="item in tableData" :key="item.id">
            <td>{{ item.id }}</td>
            <td>{{ item.name }}</td>
            <td>{{ item.description }}</td>
          </tr>
        </tbody>
      </table>
    </main>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      isCollapsed: false, // 导航栏折叠状态
      tableData: [] // 表格数据
    };
  },
  mounted() {
    // 在组件挂载后,使用axios异步获取后端数据
    axios.get('/api/data')
      .then(response => {
        this.tableData = response.data;
      })
      .catch(error => {
        console.error(error);
      });
  },
  methods: {
    toggleCollapse() {
      this.isCollapsed = !this.isCollapsed;
    }
  }
};
</script>

<style>
/* 样式可根据实际需求进行调整 */
#app {
  display: flex;
}

header {
  width: 100%;
  background-color: #f0f0f0;
  padding: 20px;
}

aside {
  width: 200px;
  background-color: #333;
  color: #fff;
  transition: width 0.3s;
}

aside.collapsed {
  width: 50px;
}

nav ul {
  list-style-type: none;
  padding: 0;
  margin: 20px 0;
}

nav li {
  margin-bottom: 5px;
  position: relative;
}

nav a {
  color: #fff;
  text-decoration: none;
}

nav ul ul {
  display: none;
  position: absolute;
  left: 100px;
  top: 0;
}

nav li:hover > ul {
  display: inherit;
}

main {
  flex: 1;
  padding: 20px;
}

table {
  border-collapse: collapse;
  width: 100%;
}

th, td {
  border: 1px solid #ddd;
  padding: 8px;
}

th {
  background-color: #f0f0f0;
}
</style>

以上,我们使用SFC(vue单文件)实现了基于vue3的页面布局设计,虽然非常简单,但是我们可以通过这个例子快速入门页面布局设计。这样可以避免好多同学因为对负责布局的恐惧而无法入门的问题。

好了,今天我们就介绍到这里,后续我们继续更新有趣的内容。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiajgeg
系列文章
更多 icon
同类精品
更多 icon
继续加载