当前位置: 首页 > news >正文

优雅设计之美:实现Vue应用程序的时尚布局

本文为翻译文章,原文链接:

** https://fadamakis.com/clean-layout-architecture-for-vue-applications-a738201a2a1e

前言

页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式。如果使用的是Nuxt,则可以提供开箱即用的优雅解决方案。然而,令人遗憾的是,在Vue中,这些问题并未得到官方文档的解决。

经过多次尝试,小编得出了一个运行良好且可扩展而不会令人头疼的架构的模式。下面用一个简单的例子为大家介绍一下。

设置需求

布局架构需要满足的需求:

  • 页面应声明每个部分的布局和组件。
  • 对页面的更改不应影响其他页面。
  • 如果布局的某些部分在页面中是通用的,则只应声明一次。

设置Vue路由

小编需要在页面之间导航,这就是小编要设置 vue-router 的原因。 Vue-cli 脚手架vite提供了在创建新项目时包含它的选项,但如果您没有用脚手架创建项目,可以通过下面的方式设置路由。

  1. 安装 vue-router 依赖项

  2. 声明路由

  3. 将其安装为插件

  4. 最后,更新 App.vue使其仅包含router-view

运行后的显示效果如下图所示:
优雅设计之美:实现Vue应用程序的时尚布局_ide

页面

下面将创建以下页面:主页、探索、文章和 404,以及三种布局:三列、两列和空白。

三列布局

主页是每个流行的社交网络使用的典型 3 列布局。第一列包含应用程序的徽标和导航,在使用此布局的每个页面中保持不变。这同样适用于右下角的页脚。每个页面的主要内容和侧边栏小部件都会更改。
优雅设计之美:实现Vue应用程序的时尚布局_应用程序_02

首先从 HomePage.vue 组件开始实现这一点。

小编使用一个 ThreeColumnLayout 组件(稍后会实现它)。默认插槽具有标题和文章列表,它们是页面的主要内容。此外,小编创建一个名称为aside 的命名槽,用于声明小部件。

按照通用约定, ThreeColumnLayout 组件放置在文件夹中 /layouts 它将使用网格容器并用于

grid-template-areas 创建三列布局。

布局的实现细节将取决于此组件,而不是页面。使用flexbox,网格系统或任何其他技术都是可能的。如果使用全宽、盒装或流体布局,则同样适用。

此布局有 3 列

第一列将包含硬编码的徽标和导航组件。
第二列将仅创建默认插槽,并让页面决定要插入的内容。

第三列将包含每个页面通用的旁槽和页脚组件。

ThreeColumnLayout.vue

实现效果如下图所示:
优雅设计之美:实现Vue应用程序的时尚布局_ide_03

创建具有相同布局的新页面将证明这种方法是多么简洁。

使用下面的代码创建文章页面,并在侧边栏上有一个额外的小部件:

实现的效果:
优雅设计之美:实现Vue应用程序的时尚布局_ide_04

两列布局

对于“详情”页面,小编将创建一个两列布局。第一列将与三列布局相同,但主要部分将占据屏幕的其余部分,并将页脚放在底部。
优雅设计之美:实现Vue应用程序的时尚布局_应用程序_05

该实现看起来与上一个没有太大区别。但是这次小编使用flex-basis。( 只是为了演示创建CSS布局的不同方法。在实际场景中,所有实现都应使用相同的技术。)

TwoColumnLayout.vue

使用此布局的浏览页面非常简单。

Explore.vue

实现效果:

优雅设计之美:实现Vue应用程序的时尚布局_应用程序_06

空白布局

最后,小编创建一个可在 404 页面上使用的空白整页布局。

即使实现很简单,使用布局也很重要,这次只有一个居中的容器(tailwind.css)。

这样,小编可以保持页面组件的精简,并确保使用此布局的多个页面的外观和行为相同。

优雅设计之美:实现Vue应用程序的时尚布局_ide_07

结论

布局是减少样板和维护具有专业外观的应用程序的绝佳工具。结合全面的文件夹结构可以产生每个人都喜欢使用的代码库,除此之外,如果您想下载完整代码,欢迎点击这里:** Gitee。

相关文章:

优雅设计之美:实现Vue应用程序的时尚布局

本文为翻译文章,原文链接: ** https://fadamakis.com/clean-layout-architecture-for-vue-applications-a738201a2a1e 前言 页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式。如果使用的是Nuxt,则可以提供开箱即用…...

05预测识别-依托YOLO V8进行训练模型的识别——对视频中的目标进行跟踪统计

上文中详细介绍了如何对视频进行抽帧,并对帧的图像进行目标识别。但在日常工作中,我们也会遇到需要对目标进行跟踪统计的情况,比如我们需要连续统计某一类目标有多少个的时候,如果单纯从帧中抽取图像的话,系统将无法判断是否为同一目标,从而造成目标数量统计的重复,导致…...

Android Studio(意图Intent)

前言 意图的作用:页面的跳转(从一个页面跳转到另一个页面)。 意图的创建:需要哪些参数?首先,从哪个页面跳转到哪个页面;其二,跳转到另一个页面需要携带数据吗。 下面介绍顺序&#x…...

Bean作用域

从笔者之前的博客,我们可以看出 Spring 是⽤来读取和存储 Bean,因此在 Spring 中 Bean 是最核⼼的操作 资源,所以接下来我们深⼊学习⼀下 Bean 对象:Bean作用域! 限定程序中变量的可用范围叫做作用域!或者…...

YOLOV5----修改损失函数-SE

主要修改yolo.py、yolov5s.yaml及添加SE.py 一、SE.py import numpy as np import torch from torch import nn from torch.nn import initclass SEAttention(nn.Module):def __init__(self, channel=512...

Mybatis(一)

1. Mybatis简介 MyBatis下载地址 1.1 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github…...

使用Go构建一个Postgres流平台

使用 Go 通道从拉推模型转向更高效的流方法。这通过重叠拉取和推送阶段来提高性能,减少总体处理时间和延迟。 Go通道提供数据同步、资源管理和并发处理。它们允许 goroutine 安全地通信和交换数据。这些源实现了每秒 10-12k 事务的吞吐量,最小延迟为 1-…...

QT基础与细节理解

前言 本博客旨在记录QT学习过程中的一些细节知识理解,由于问题的产生并非成体系,所以前期的记录可能会无序一些。烦请读者参阅目录进行快速的问题定位与跳转 QT基础与细节理解 前言正文部分QT基础1:正确理解: QWidget(parent), ui(new Ui::u…...

【MySQL数据库】 六

本文主要介绍了数据库原理中数据库索引和事务相关概念. 一.索引 在查询表的时候,最基本的方式就是遍历表,一条一条筛选 . 因此,就可以给这个表建立索引,来提高查找的速度 比如,按照id建立索引 在数据库上额外搞一个空间维护一些id 相关的信息, id:1 表的某个位置 id:2 …...

微信总提示空间不足怎么办?三个方法随心选!

微信显示空间不足会给用户带来很多困扰,比如影响手机的正常使用,占用大量存储空间,导致手机运行缓慢,没法分享图片和视频,影响我们的社交交流。下面提供了一些简单实用的方法。 方法一:清理微信缓存 1、打…...

C语言每日一题(27)链表中倒数第k个结点

牛客网 链表中倒数第k个结点 题目描述 描述 输入一个链表,输出该链表中倒数第k个结点。 思路分析 这是一道经典的快慢指针题,fast和slow最开始都指向头结点,对于输入值k,先让快指针fast先走k步,之后再让两个指针一…...

pdf转word

1、pip install pdf2docx 2、 from pdf2docx import Converterpdf_filerH:\测试.pdf docx_filerH:\测试_word.docxcvConverter(pdf_file) cv.convert(docx_file,start0,endNone) cv.close()会根据H目录中的pdf,在本目录自动生成相应的word...

LeetCode热题100——二叉树

二叉树 1. 二叉树中序遍历 1. 二叉树中序遍历...

【Linux】文件重定向以及一切皆文件

文章目录 前言一、重定向二、系统调用dup2三、重定向的使用四、一切皆文件 前言 Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2, 0,1,2对应的物理设备一般是:键盘&#xff…...

Go进阶之rpc和grpc

文章目录 Go环境安装1)windows2)linux go语言编码规范1.1 包名:package1.2 ⽂件名1.3 结构体命名1.4 接⼝命名1.5 变量命名1.6 常量命名2.1 包注释2.2 结构(接⼝)注释2.3 函数(⽅法)注释2.4 代码…...

润和软件HopeStage与奇安信网神终端安全管理系统、可信浏览器完成产品兼容性互认证

近日,江苏润和软件股份有限公司(以下简称“润和软件”)HopeStage 操作系统与奇安信网神信息技术(北京)股份有限公司(以下简称“奇安信”)终端安全管理系统、可信浏览器完成产品兼容性测试。 测试…...

模态对话框和非模态对话框

创建到堆区这样非模态对话框就不会一闪而过 .exec使程序进入阻塞状态 ()[]{}lambda表达式 55号属性可以在对话框关闭的时候将堆区的内存释放掉从而防止内存泄露...

【算法与数据结构】39、LeetCode组合总和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题当中数字可以多次使用,那么我们在递归语句当中不能直接找下一个candidate的元素&…...

行政大厅满意度调查内容

行政大厅满意度调查的内容应该涵盖各个方面,以全面了解公众对行政大厅服务的满意度和意见。以下是可能包含在行政大厅满意度调查中的内容: 服务态度: 行政大厅工作人员的友好程度和专业水平。是否受到尊重和礼貌的待遇。 办事效率&#xf…...

WordPress页脚配置备案号

进入后台管理页面 后台管理页面地址一般是&#xff1a;域名/wp-admin 在指定位置加入代码 点击外观 -> 主题文件编辑器 在右侧的文件中选择 footer.php,[注意&#xff1a;上方的主题需要是你自己选择的对应的主题]在 </footer>标签这一行的上一行中加入代码 <di…...

GPU集群故障分析:大型AI训练中的硬件问题与影响

GPU集群故障分析&#xff1a;大型AI训练中的硬件问题与影响 核心问题 在大型AI计算集群&#xff08;如使用上千块GPU卡训练大模型&#xff09;中&#xff1a; GPU硬件会出哪些毛病&#xff1f;这些问题发生的频率、严重程度如何&#xff1f;最终对AI训练任务有什么影响&#…...

微信小程序带参分享、链接功能

分享链接的功能是右上角点...然后复制链接&#xff0c;可以直接点击 #小程序://**商城/p5XqHti******* 这种链接直接从其他地方跳转到小程序 wx.onCopyUrl(() > {return {query: "shareCode" this.shareCode,}; }); query就是参数&#xff0c;直接在onload里…...

国标GB28181设备管理软件EasyGBS远程视频监控方案助力高效安全运营

一、方案背景​ 在商业快速扩张的背景下&#xff0c;连锁店门店数量激增&#xff0c;分布范围广。但传统人工巡检、电话汇报等管理方式效率低下&#xff0c;存在信息滞后、管理盲区&#xff0c;难以掌握店铺运营情况&#xff0c;影响企业效率与安全。网络远程视频监控系统可有…...

agent 开发

什么是 agent&#xff1f; Agent智能体&#xff08;又称AI Agent&#xff09;是一种具备自主感知、决策与行动能力的智能系统&#xff0c;其核心在于模仿人类的认知过程来处理复杂任务。以下是其关键特性和发展现状的综合分析&#xff1a; 一、核心定义与特征 #‌## 自主决策…...

Python训练营打卡Day46(2025.6.6)

知识点回顾&#xff1a; 不同CNN层的特征图&#xff1a;不同通道的特征图什么是注意力&#xff1a;注意力家族&#xff0c;类似于动物园&#xff0c;都是不同的模块&#xff0c;好不好试了才知道。通道注意力&#xff1a;模型的定义和插入的位置通道注意力后的特征图和热力图 i…...

业态即战场:零售平台的生意模型与系统设计解构

目录 一、当我们在电商买菜、点外卖时,其实是零售业态在进化 (一)从“商场选货”到“算法推货”:零售的时代已经不同 (二)“控货”和“卖场”——零售的两种基本商业模式 二、四种经典零售业态解析:控货 vs 卖场,地面 vs 线上 (一)地面控货零售:直营模式的黄金…...

FPGA 动态重构配置流程

触发FPGA 进行配置的方式有两种&#xff0c;一种是断电后上电&#xff0c;另一种是在FPGA运行过程中&#xff0c;将PROGRAM 管脚拉低。将PROGRAM 管脚拉低500ns 以上就可以触发FPGA 进行重构。 FPGA 的配置过程大致可以分为&#xff1a;配置的触发和建立阶段、加载配置文件和建…...

【数据分析】基于adonis2与pairwise.adonis2的群组差异分析教程

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理adonis分析pairwise.adonis2分析总结系统信息介绍 本教程主要用于执行和分析基于距离矩阵的多样性和群落结构分析,特别是通过adonis2和pairwi…...

1.1Nodejs和浏览器中的二进制处理

Buffer 在 Node.js 中&#xff0c;Buffer 类用于处理二进制数据。由于 JavaScript 在浏览器环境中主要用于处理字符串和数字等类型的数据&#xff0c;对二进制数据的处理能力较弱&#xff0c;因此 Node.js 引入了 Buffer 类来弥补这一不足&#xff0c;特别是在处理文件系统操作…...

物联网数据归档之数据存储方案选择分析

在上一篇文章中《物联网数据归档方案选择分析》中凯哥分析了归档设计的两种方案,并对两种方案进行了对比。这篇文章咱们就来分析分析,归档后数据应该存储在哪里?及存储方案对比。 这里就选择常用的mysql及taos数据库来存储归档后的数据吧。 你在处理设备归档表存储方案时对…...