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

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

时间:2023-03-23 09:04:13浏览次数:56  
标签:vue 全局 admin next 对象 TypeScript 挂载 message any

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

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

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

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

 这里面可以按照作用分类不同的文件, 我们在这里增加一个独立的文件 $u.d.ts ,来设置我们定义挂载对象的接口类型信息。

另外我们打算的全局辅助类对象的信息,放在utils 目录里面,如下所示。

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

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

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

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

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

//定义自定义类$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;
}

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

 

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

 而我们最终的目的就是通过$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,全局,admin,next,对象,TypeScript,挂载,message,any
From: https://www.cnblogs.com/wuhuacong/p/17243300.html

相关文章

  • vue学习笔记01
    vue3带来的变化vue3的发布时间2020/09/19。优点:更好的性能、更小的包体积、更好的TypeScript集成、更优秀的API设计。optionsAPI->CompositionAPI,由选项API......
  • Vue.js 具名插槽
    视频componentsCategray.vue<template> <divclass="category"> <h3>{{title}}分类</h3> <!--定义一个插槽(挖个坑,等着组件的使用者进行填充)--> <slotname="ce......
  • fastadmin生成Tab选项卡
    fastadmin生成Tab选项卡2022-12-23不要看什么狗屁文档,都是骗人的,让我踩了半天坑。  关于fastadmin生成选项卡,最简单,最直接的办法就是【字段命名】,不要添加任何命......
  • Vue.js 默认插槽
    默认插槽视频componentsCategray.vue<template> <divclass="category"> <h3>{{title}}分类</h3> <!--定义一个插槽(挖个坑,等着组件的使用者进行填充)--> <slot>......
  • Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)
    优秀文章分享:vue中使用vuex(超详细)-掘金(juejin.cn)一、状态管理1.1、什么是状态管理?理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以......
  • vue中设置input输入框的值为正整数,不能为负数和小数
    importVuefrom'vue'Vue.directive('Int',{bind:function(el){constinput=el.getElementsByTagName('input')[0]input.onkeyup=function(e){......
  • vue中van-picker的选项插槽使用方法
    van-picker的内部选项怎么来自定义首先要确保 VantUI 的版本在2.10.0以上然后利用插槽slot来实现,在Vant里插槽有一个进阶用法 #<van-picker:show-toolbar="fal......
  • vue+element-ui+springboot实现修改当前登录用户的信息
    正文:话不多说,直接上代码springboot代码/***根据id修改当前登录用户的信息**@paramusername*@return*/@GetMapping("/userna......
  • Vue3 点击复制功能,利用vue-clipboard3
    首先安装插件vue-clipboard3 npminstallvue-clipboard3--save然后在页面里面引入<buttonclass="btn"@click="copy()">点击复制</button>  建议用buttn标签......
  • fastadmin添加自定义button按钮
    fastadmin添加自定义button按钮  fastadmin添加自定义按钮1、首先在初始化表格参数配置中添加URL,添加所需要的按钮地址 2、然后再初始化表格中,这这个位......