首页 > 其他分享 >在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口

时间:2023-03-26 10:06:34浏览次数:54  
标签:vue 全局 admin next 对象 TypeScript 挂载 message any

在基于vue-next-admin 的 Vue3+TypeScript 前端项目中,可以整合自己的 .NET 后端,前端操作一些功能的时候,为了使用方便全局挂载的对象接口,以便能够快速处理一些特殊的操作,如消息提示、辅助函数、正则测试等等。本篇随笔介绍在Vue3+TypeScript 前端项目中全局挂载对象$u,获得相关 $u_interface 的统一入口的接口信息。这样在组件或者页面中就可以方便的使用便捷对象的相关处理方法了。

vue-next-admin 是一个不错的后台开源免费模板项目,可以利用它来开发自己的项目前端,它的技术栈是:vue3.x + setup 语法糖 + TypeScript + Vite + ElementPlus。

1、定义全局挂载对象的入口对象,以及相关的接口

我们知道,基于Typescrip的项目,在项目中都有一个Typescrip的配置文件tsconfig.json,其中对一些Typescrip的目录或者设置进行设定。由于在VSCode加载项目的时候,会把项目相关的类型定义加载进来,因此我们可以在编码的时候就有智能提示,它的配置在Include的配置项中。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_全局变量

通过通配符的匹配,可以自动加载对应的类型信息。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_Vue3+TypeScript_02

$u.d.ts

另外我们打算的全局辅助类对象的信息,放在utils

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_实例化_03

 为了方便在Vue3+TypeScript 前端项目中挂载对象,我编写相关的代码,提供一个install的组件安装方法,给在main.ts中调用处理。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_Vue3+TypeScript_04

 在mian.ts中,使用use的方式实现挂载处理即可

app.use($u);//挂载自定义的一些变量辅助类

对应的辅助类接口定义,统一放在全局的Types目录的一个单独的$u.d.ts文件中定义。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_全局变量_05

 例如我们定义常规弹出消息的函数接口如下所示。

//定义自定义类$u的接口类型
interface message_interface {
  Message(message: string): any;
  success(message: string): any;
  warn(message: string): any;
  error(message: string): any;
  confirm(message = '您确认删除选定的记录吗?'): Promise<any>;
  notify(message: string, position: any = 'bottom-right', type: any = 'info'): any;
}

其他的一些接口定义,则进行组合处理即可。

 

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_全局变量_06

 然后把各部分的接口进行统一组合即可。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_Vue3+TypeScript_07

 而我们最终的目的就是通过$u可以获得相关 $u_interface 的接口信息即可。这样在组件或者页面中就可以通过引入使用全局挂载的便捷对象了。

import { $user } from '/@/utils/$u'; //使用简便模式获取注入全局变量u
let $u = $user(); //实例化

定义好后,我们就可以在页面中进行调用统一的入口对象了,如下代码所示。

import { $user } from '/@/utils/$u'; //使用简便模式获取注入全局变量u
let $u = $user(); //实例化
console.log($u.$t("message.router.home"));//测试$t变量

nextTick(() => {
    $u.message.notify('测试');
});

// 删除
const delFile = (row: any) => {
    var tips = `确定删除文件:【${row.fileName}】?`;
    $u.message.confirm(tips)
        .then(async () => {
            await fileApi.delete({ id: row.id });
            $u.message.success('删除成功');
        })
        .catch(() => { });
};

 

页面很多地方使用了基于Vue3+TypeScript的全局对象的注入处理。如一些信息提示,一些通用函数的调用等。

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口_循序渐进VUE+Element_08

 

标签:vue,全局,admin,next,对象,TypeScript,挂载,message,any
From: https://blog.51cto.com/wuhuacong/6149800

相关文章

  • Vue2学习笔记
    VUE官网:https://cn.vuejs.org/参考教程:https://v2.cn.vuejs.org/v2/guide快速入门<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>QuickVueEx......
  • vue-axios
    Axios常用请求方式getpostdeleteputpatchheadrequestall:发送多个请求,返回一个数组axios.all([])常用配置选项urlmethodbaseURL:......
  • Vue基础
    1.声明式和命令式编程2.MVVM模型view--ViewModel(事件监听、数据绑定)--Model3.optionsdata属性:vue2中可以是一个对象,推荐函数vue3中必须是一个函数,否则会报错......
  • Vue模板
    <scriptsrc="/js/vue.min.js"></script><scriptsrc="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script><scripttype="text/javascript">newVu......
  • ant-design-vue循环生成多个独立的form表单
    前言后台需要的参数格式如下:info=[{name:'',cardId:'',phone:''},{name:'',cardId:'',phone:''},{name:'',cardId:'',phone:''}]由于后台参数的特殊性,每一行内容组成一......
  • Vue进阶(二十七):Vuex 之 getters, mapGetters, ...mapGetters详解
    一、前言Vuex提供了state状态统一管理树,开发者可以在vue中用computed计算属性接收这些公共状态以便使用。当然,也可以在接收原值的基础上对这个值做出一些改造,如:computed:{......
  • Vue——initState【十】
    前言前面我们简单的了解了vue初始化时的一些大概的流程,这里我们详细的了解下具体的内容;内容这一块主要围绕init.ts中的initState进行剖析,初始化生命周期之后紧接着。......
  • Vue介绍与生命周期详解
    一、Vue简介 Vue是一款轻量级、高性能的JavaScript框架,用于构建用户界面,它的核心是数据双向绑定和组件化。Vue的设计灵感来源于AngularJS和React,但它更加易于上手和使用......
  • SpringBoot集成SpringBootAdmin实现监控
    效果展示客户端maven引用<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifa......
  • 初识vue3-setup语法糖,ref和reactive语法,computde计算属性,watch开启监听
    vue3和vue2的区别1,vue3首次渲染更快(Vue3在编译和渲染性能上有了很大的提升,主要是因为使用了Proxy代理和优化算法,使得组件可以更快的渲染)2,diff算法更快3,内存占用体积......