vue3封装全局方法

场景:各个模块详情中存在附件列表数据,需要再每个中添加一个预览附件的方法,是后期提出的需求,所以要在每个模块中进行添加,就去将预览方法封装一下。

将公共方法封装在utils下

utils/filePreview.ts

复制代码
import router from '@/router'; // 引入路由实例

/**
 * 文件预览公共方法
 * @param {Object} row - 当前文件数据
 */
export function filePreview(row) {
  localStorage.setItem('filedata', JSON.stringify(row)); // 将文件数据存储到 localStorage 中
  const url = `${window.location.origin}${router.options.base || ''}/filePreview`; // 构造跳转 URL
  const link = document.createElement('a'); // 创建 a 标签
  link.href = url;
  link.target = '_blank'; // 新窗口打开
  link.click(); // 触发点击事件
}

然后再main.ts中进行引用注册

import App from './App.vue'

import {filePreview} from '@/utils/filePreview';

const app = createApp(App)

app.config.globalProperties.$filePreview = filePreview;

使用方法

<el-button

size="small"

type="primary"

@click="$filePreview(scope.row)"

>

预览

</el-button>

相关推荐
magic 2451 小时前
Spring 命名空间注入:p、c 与 .util 的深度解析
java·前端·spring
钢铁男儿1 小时前
Python基本语法(函数partial)
前端·javascript·python
风清云淡_A1 小时前
【angular19】入门基础教程(三):关于angular里面的响应式数据入门使用
前端·angular.js
green_pine_2 小时前
Vue3学习笔记2——路由守卫
前端·vue.js·笔记·学习
空中湖2 小时前
纯前端专业PDF在线浏览器查看器工具
前端·pdf
七灵微2 小时前
ES6入门---第二单元 模块二:关于数组新增
前端·javascript·es6
GUIQU.2 小时前
【Vue】性能优化与调试技巧
前端·vue.js·性能优化
娃哈哈哈哈呀2 小时前
组件通信-mitt
前端·javascript·vue.js
wuhen_n2 小时前
鼠标悬浮特效:常见6种背景类悬浮特效
前端·css·css3·html5
娃哈哈哈哈呀3 小时前
组件通信-v-model
java·服务器·前端