百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

基于 Ant Design Vue 的 Vue3.0 框架

bigegpt 2024-08-05 11:49 8 浏览

Makeit-Admin-Pro,是基于 Vue 3.0 + Vite 开发的一套适合中后台管理项目的集成框架,依赖于阿里的 Ant Design Vue 2.x 版本,内置了登录页面 / 注册页面 / 验证码 / 页面布局等常用模块,开箱即用,现阶段还在持续更新中 ...

开发这套统一的中后台管理项目的 UI 框架,主要就是为了免去那些没完没了的后台项目中的基础构建,通过 npm 安装引入的方式,以组件引入的形式,渲染想要的但又在无数个项目中重复的基础页面。

现阶段还在持续开发完善中,所以暂时 还没有部署 Demo 及撰写相关的说明或使用文档。Github 地址附加在最后的扩展链接中,有需要的可以看看,也可以在 npm 的官网中搜索 makeit-admin-pro 查看

安装

直接通过 npm 命令安装即可。

// 安装
npm i makeit-admin-pro

// 使用
import { createApp } from 'vue'
import MakeitAdminPro from 'makeit-admin-pro'
import 'makeit-admin-pro/dist/miitvip.min.css'
createApp(App).use(MakeitAdminPro)


布局

页面布局采用常用的左侧菜单 + 顶部导航 + 内容区域,引入布局组件后可以直接进行 vue 单页面开发,内容会直接嵌入到 Content 区域。

// 直接
<template>
    <mi-layout></mi-layout>
</template>


菜单

左侧菜单通过全局变量 $g 进行配置。也就是说,菜单 menu 完全可以根据权限系统配置,通过接口等的方式获取后再赋值形成菜单列表,菜单的字段属性符合 RouteRecordRaw 即可,其中内含的 meta 属性,自定义性质比较强,所以 icon / tag 等都包含在这个属性内进行判断渲染了。

import { defineComponent, createVNode } from 'vue'
import { ThunderboltOutlined } from '@ant-design/icons-vue'

export default defineComponent({
  created() {
    this.$g.menus.items = [{
      name: 'start',
      path: '/start',
      meta: {
        title: '快速上手',
        subTitle: 'Getting Start',
        icon: createVNode(ThunderboltOutlined),
        tag: {color: '#f50', content: 'Hot'}
      }
    }, ...]
  }
})


登录

登录也非常简单,引入组件即可。不过现在定制性并没有那么好,背景图,表单等可以通过传参的形式自行定制,但登录页面的布局不支持定制,如下图所示。

// 未开启验证码
<template>
    <mi-login action="v1/login"></mi-login>
</template>

// 开启验证码
<template>
    <mi-login action="v1/login" captcha-init-action="v1/captcha/init" captcha-verify-action="v1/captcha/verification"></mi-login>
</template>


注册

注册效果与登录的差不多,加了一些内容输入时的弹窗实时提醒信息。


工具

另外也封装了不少基础内容,大致的列一下:

  • Storage 存储。暴露的变量为 $storage,可直接通过 this.$storage.get 等形式进行取值 / 设定值等。
  • Cookie 存储。暴露的变量为 $cookie,方法也与 storage 类似,get / set / del 等。
  • Http 工具。暴露的变量为 $http,内含常用的 get / post / put / patch / delete / options / head 等常用方法,通过 this.$http.get 等形式直接调用(基于 axios 封装)。
  • Api 类。该类主要是封装 API,加版本号等操作,可直接通过 this.$g.api 进行赋值,通过 this.api.login 形式获取相应 API 即可。
  • Tools 工具类。暴露的变量为 $tools,内含 on 事件绑定 / off 事件解绑等常用的工具类函数。通过 this.$tools.on(...) 形式进行调用。
  • Config 配置。暴露的变量为 $g,配置全局变量,内含常用的正则,站点标题,站点描述等公用常量。


总结

老早在 Vue 2.x 版本的时候,结合 view-design 组件库,用 template 的形式集成过一些基础框架的内容,只是一直没有再去整理,这次恰好 Vue 3.x 版本也出来了,也就直接用 Vue 3.x 版本 + Vite + TSX 进行整理开发了,也当是初步探索 Vue 3.x 的开发。最近有时间的时候,大部分都是用于这个框架的组件开发了,现在还在持续开发中,等想要做的组件或基础功能完善了之后,再整 Demo,再整理整理使用文档。

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...