vue系列(四)-v3admin学习

2023-10-30 18:51:36 浏览数 (1)

近日见闻

  1. GEEKCON 2023将于10月24日在上海正式拉开帷幕。--GEEKCON
  2. VSCode决定放弃Python3.7!微软新发布的Visual Studio Code 扩展中,已经废弃了对Python3.7 的支持。在2022年底,VS Code 的Python插件已经停止了对 Python3.6 的支持。-- VS Code
  3. 祈祷世界和平!--巴以冲突

开源vue管理系统学习

昨天文章发的着急了,没把图发出来,昨天将UnoCSS的图标添加进去了,效果如下:

今天在开发layout的时候,elmentplus只给出大的框架,需要我们自己去设计和填充头部、侧栏、主要内容和页脚。所以简单做了一个页面复习下框架。

大部分项目都是在这个基础上扩展出来的。将头部、logo、侧栏、内容和页脚都分别抽离成一个组件进行开发,这样对于后期的扩展和修改是比较方便的。想起来刚开始我自己学习的时候,是将这些内容全部放在一个layout.vue组件中的,前期修改还是很方便的,。所以还是得看情况去开发,如果项目简单且小的话,我觉得全部放一块并没有什么问题。但是如果想做的大一些,长期维护的话还是一开始就做的分离出来一些比较好!

今天我们来学习下开源的后台框架v3-admin,正好我也在使用这一套技术栈,向优秀的开源框架学习一定会收获很多。仓库地址:https://github.com/un-pany/v3-admin-vite

页面效果:

我们看看人家代码关于layout是怎么写的:

代码语言:javascript复制
<template>
  <div :class="classes">
    <!-- 左侧模式 -->
    <LeftMode v-if="layoutMode === 'left' || appStore.device === DeviceEnum.Mobile" />
    <!-- 顶部模式 -->
    <TopMode v-else-if="layoutMode === 'top'" />
    <!-- 混合模式 -->
    <LeftTopMode v-else-if="layoutMode === 'left-top'" />
    <!-- 右侧设置面板 -->
    <RightPanel v-if="showSettings">
      <Settings />
    </RightPanel>
  </div>
</template>
代码语言:javascript复制
<LeftMode v-if="layoutMode === 'left' || appStore.device === DeviceEnum.Mobile" />:

这是一个Vue组件LeftMode,它使用了v-if指令来进行条件渲染。只有当layoutMode的值等于'left',或者当appStore.device的值等于DeviceEnum.Mobile时,才会渲染这个组件。以上这段代码根据数据属性layoutMode和showSettings的值来动态渲染不同的组件,实现了不同的布局效果,从而根据条件渲染在页面中显示不同的用户界面。

这里作者分为了三种模式,一种是左侧模式,一种顶部模式就是菜单在顶部,混合模式就是左侧加顶部模式。

再看看代码结构,就可以知道功能划分的比较清楚了,有侧栏、面包屑、页脚、logo、导航栏、右侧设置显示模式的组件等。

代码语言:javascript复制
│  index.vue
│  LeftMode.vue
│  LeftTopMode.vue
│  TopMode.vue
│
├─components
│  │  AppMain.vue
│  │  index.ts
│  │
│  ├─Breadcrumb
│  │      index.vue
│  │
│  ├─CompConsumer
│  │      index.ts
│  │
│  ├─Footer
│  │      index.vue
│  │
│  ├─Hamburger
│  │      index.vue
│  │
│  ├─Logo
│  │      index.vue
│  │
│  ├─NavigationBar
│  │      index.vue
│  │
│  ├─RightPanel
│  │      index.vue
│  │
│  ├─Settings
│  │      index.vue
│  │      SelectLayoutMode.vue
│  │
│  ├─Sidebar
│  │      index.vue
│  │      SidebarItem.vue
│  │      SidebarItemLink.vue
│  │
│  └─TagsView
│          index.vue
│          ScrollPane.vue

所以如果想要快速学习,那就像我那样简单布局在一个vue组件中就行,但是想要学的深入些,就得规范一些了,想这些开源项目学习收获真是不少。

0 人点赞